‘壹’ 一个简单的c语言程序,编译连接时没有错误,运行时没结果。
scanf("%d,%d,%d\n",&x,&y,&z);
这句需要改掉 ,去掉\n
另外 你没有考虑 相等的时候 例如 输入 3 3 6 那种情况都不符合 就不会输出了
‘贰’ c语言为何需要编译和连接才能运行
代码编写的是代码,机器看不懂,需要翻译为机器能看懂的指令,这就是编译。机器看不懂代码,怎么执行?代码是给人看的。
‘叁’ 如何看出C语言程序的运行结果
自己慢慢算。既然有 scanf 那就肯定要键盘输入。输入才有结果嘛。要不然迩就自己代三个数进去。慢慢算。有些程序代码是必须从编辑器里面算出来的。
‘肆’ 求c语言编程,要有运行结果,谢谢
#include<iostream.h>
#include<stdlib.h>
#include<malloc.h>
#define max 20
typedef struct node //定义AOV网的邻接链表的边结点结构 有向图
{
int vex; //边结点
struct node *next; //边结点的指针
}edgenode;
typedef struct vnode //定义AOV网的邻接链表的边结点结构 有向图
{
int id; //入度
struct node *link; //顶点的指针
}vexnode;
typedef struct nodel //定义AOE网的邻接链表的边结点结构
{
int adgvex; //边结点
int t; //权值
struct nodel *next;//边结点指针
}edgenodel;
typedef struct vnodel //定义AOE网的邻接链表的边结点结构
{
int vertex; //顶点
int id; //入度
struct nodel *link;//顶点的指针
}vexnodel;
int na;
//函数的申明
int creatAOE(vexnodel dig[]);
int creatAOV(vexnode dig[]);
void toposort(vexnode dig[],int n);
void criticalpath(vexnodel dig[],int n);
void main()
{
vexnodel dig[max]; //AOV的顶点数组
vexnode dig2[max]; //AOE的顶点数组
int n=0;
int cord=1;
while(1)
{
cout<<"----主菜单----"<<endl;
cout<<"1.建立AOV邻接链表"<<endl;
cout<<"2.建立AOE邻接链表"<<endl;
cout<<"3.拓扑排序"<<endl;
cout<<"4.求关键路径"<<endl;
cout<<"0.退出"<<endl;
cout<<"输入你的选择:"<<endl;
cin>>cord;
switch(cord)
{
case 1:n=creatAOV(dig2);
break;
case 2:cout<<"输入边数:";
cin>>na; //AOE网的活动数
n=creatAOE(dig);
break;
case 3:toposort(dig2,n);
break;
case 4:criticalpath(dig,n); //求关键路径
break;
case 0:exit(0);
}
}
}
int creatAOE(vexnodel dig[])
{
int vextotal,j,a,b,c;
edgenodel *p;
cout<<"输入顶点数:";
cin>>vextotal; //输入顶点数
for(j=0;j<max;j++) //输入AOE邻接链表
{
dig[j].vertex=j; //初始化顶点数组
dig[j].id=0;
dig[j].link=NULL; //顶点的指针
}
for(j=1;j<=na;j++)
{
cout<<"输入边<i j>以及权值:";
cin>>a>>b>>c; //a为始顶点,b为终顶点,c为活动的权
dig[b].id++; //入度加一
p=(edgenodel*)malloc(sizeof(edgenodel));
p->adgvex=b;
p->t=c;
p->next=dig[a].link;
dig[a].link=p;
}
cout<<"输出邻接表"<<endl;
//输入AOV图的邻接链表
for(j=1;j<=vextotal;j++)
{
cout<<"顶点"<<j<<"入度为"<<dig[j].id<<"指向:";
p=dig[j].link; //顶点指针下移
while(p!=0)
{
cout<<"顶点"<<p->adgvex<<"权值为"<<p->t<<" ";
p=p->next;
}
cout<<endl;
}
return vextotal;
}
int creatAOV(vexnode dig[])
{
int vextotal,arcnumber,j,a,b;
edgenode *p; //边结点结构
cout<<"输入边数:";
cin>>arcnumber;
cout<<"输入顶点数:";
cin>>vextotal;
//输入AOV图的邻接链表
for(j=0;j<max;j++) //初始化
{
dig[j].id=0;
dig[j].link=NULL; //顶点指针为空
}
for(j=1;j<=arcnumber;j++)
{
cout<<"输入两个顶点表示的边:"<<endl;
cin>>a>>b; //输入边信息,a为始顶点,b为终顶点
p=(edgenode*)malloc(sizeof(edgenode));
p->vex=b;
p->next=dig[a].link;
dig[a].link=p;
dig[b].id++; // 入度加1
}
cout<<"输出邻接表"<<endl; //输入AOV图的邻接链表
for(j=1;j<=vextotal;j++)
{
cout<<"顶点"<<j<<"入度"<<dig[j].id<<"邻接";
p=dig[j].link; //指针下移
while(p!=NULL)
{
cout<<"顶点"<<p->vex<<" ";
p=p->next;
}
cout<<endl;
}
return vextotal;
}
void toposort(vexnode dig[],int n) //拓扑排序
{
edgenode *p;
int i,j,k,top,m;
top=0;
m=0;
// cout<<"ssss"<<n;
for(i=1;i<=n;i++)
if(dig[i].id==0) //把入度为0的顶点链成链
{
dig[i].id=top;
top=i;
}
while(top>0)
{
j=top;
top=dig[top].id;
cout<<j<<" "; //输出入度为0的顶点
m++; // 计算入度为零的顶点
p=dig[j].link;
while(p!=NULL)
{
k=p->vex;
dig[k].id--;
if(dig[k].id==0)
{
dig[k].id=top;
top=k;
}
p=p->next;
}
}
cout<<endl;
if(m<n)
cout<<"the network has acycle"<<endl;
}
void criticalpath(vexnodel dig[],int n) //求关键路径
{
//ve和vl是顶点事件的最早和最晚时间
//e 和l 是活动的最早和最晚时间
int front=0,rear=0;
int tpord[20],vl[20],ve[20];
int l[20],e[20],i,j,k,m;
edgenodel *p;
for(i=1;i<=n;i++)
ve[i]=0; //把时间的最早发生时间赋初值
for(i=1;i<=n;i++) // 把入度为0的全部入队
if(dig[i].id==0)
tpord[++rear]=i;
m=0;
while(front!=rear)
{
front++;
j=tpord[front];
m++; // 用来判断有无有向环的
p=dig[j].link; //指针下移
while(p)
{
k=p->adgvex;
dig[k].id--; //顶点的入度减1
if(ve[j]+p->t>ve[k]) //最早时间取最大值,ve[]初始为0,如果有多条则比较
ve[k]=ve[j]+p->t;
if(dig[k].id==0)
tpord[++rear]=k;
p=p->next;
}
}
if(m<n) //判断有没有有向环
cout<<"the AOE network has acycle"<<endl;
for(i=1;i<=n;i++) // 对时间最晚发生时间赋初值
vl[i]=ve[n];
for(i=n-1;i>=1;i--) // 计算最晚发生时间
{
j=tpord[i];
p=dig[j].link; //求vl[]数组的值
while(p)
{
k=p->adgvex;
if((vl[k]-p->t)<vl[j]) //最晚时间去最小值或初始值
vl[j]=vl[k]-p->t;
p=p->next;
}
}
cout<<"输出最早和最晚时间"<<endl; //输出每个事件的最早发生时间和最晚发生时间
for(i=1;i<=n;i++)
cout<<"最早"<<ve[i]<<"最晚"<<vl[i]<<endl;
for(j=1,i=1;j<=n;j++,i++) //计算活动的最早发生时间和最晚发生时间
{
p=dig[j].link;
while(p)
{
k=p->adgvex;
e[i]=ve[j];
l[i]=vl[k]-p->t;
cout<<"顶点"<<dig[j].vertex<<"顶点"<<dig[k].vertex<<"最早"<<e[i]<<"最晚"<<l[i]<<"可推迟时间"<<l[i]-e[i];
if(l[i]==e[i])
cout<<"是关键活动"<<endl;
else
cout<<endl;
p=p->next;
}
}
cout<<"关键路径:";
for(j=1,i=1;j<=n;j++,i++) //计算活动的最早发生时间和最晚发生时间
{
p=dig[j].link;
while(p)
{
k=p->adgvex;
e[i]=ve[j];
l[i]=vl[k]-p->t;
if(l[i]==e[i])
cout<<dig[i].vertex<<" ";
p=p->next;
}
}
cout<<n;
cout<<endl;
}
测试数据
12
9
1 2 4
1 3 2
1 4 5
2 5 2
2 8 6
3 5 5
4 6 4
5 6 3
5 7 2
6 7 4
7 9 5
8 9 3
12
9
1 2
1 3
1 4
2 5
2 8
3 5
4 6
5 6
5 7
6 7
7 9
8 9
很简单的可以自己运行
可以追问我
‘伍’ c语言中的源程序必须经过编译连接生成可执行程序才能运行,这句话是对不对
哥们,这么理解是对的,不过感觉有点表面。
建议看看计算机一些原理,像你说的这个问题我会想到,计算机最终只能识别二进制码,
所以其实不管我们一切啥语言,最终都是通过编译器编译成二进制码,计算机才能识别
而去运行,而c语言编写的程序,肯定是要经过一系列的编译,链接,生成可执行的文件。
在windows系统中,执行文件都是.exe为扩展名的。不过在linux系统中就不一样了,linux
系统并不区分扩展名,所以也就无所谓什么.exe之类的文件,只要知道最终生成可执行的
二进制文件就可以了。
‘陆’ c语言在什么情况下运行需要输入数据才能得出运行结果
当程序设计者设计了需要外部输入设计接口时,需要输入数据才能得出运行结果;
例如:scanf()函数,gets()函数等
示例:
int main()
{
int a,b;
scanf("%d %d",&a,&b);
printf("%d+%d=%d
",a,b,a+b);
return 0;
}
运行结果:
‘柒’ c语言 要运行出这个结果 怎么写代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a;
float b;
cout << "请输入小明的成绩和学号" << endl;
cin >> a >> b;
printf("小明同学的学号是&d,成绩是&.1f",a,b);
return 0;
}
‘捌’ C语言运行无结果急.......急!!!!!
对着呢 可能是你没有运行对 要到相关目录然后在运行
比如你生成的可执行文件(假设可执行文件名是file.exe)在D:\tc下
那么在运行中输入cmd 然后回车
再输入D: 再回车
然后输入CD 然后按Tab键找到tc然后回车
再输入file display what you enter后回车
就会显示
display
what
you
enter
‘玖’ c语言,怎么运行不出结果呢
你这个程序问题很多:
首先:对于你的问题“为什么不输出”答案是你这里的判断
if(strcmp(dic[m],word)==0)break;
问题成立的,因为你的if……else……后面总是
j=0;
然后在进入else的时候
word[j]='