下面是我自己编的一个C程序,用turboC2.0运行总是报出“Floating point ”错误。我实在不知道哪里错了啊。请各位高手帮忙解决一下。在下感激不尽!!!#include"stdio.h"struct task{int ID; int num; int Runtime; int Waittime; float p;};struct task array[100];main(){int d,i,q,g,m,w; float k,n,s,t,u; printf("请输入作业数(不大于100)\n"); scanf("%d",&q); while(q>100) {printf("数据输入错误!请重新输入\n"); scanf("%d",&q); } g=q; printf("请输入各作业编号,已等待时间及运行时间:\n"); for(i=0;i<q;i++) {scanf("%d%f%f",&m,&k,&n); array[i].num=1; array[i].ID=m; array[i].Waittime=k; array[i].Runtime=n; } printf("作业执行的顺序是:\n"); while(g>0) {for(i=0;i<q;i++) {if(array[i].num==1) array[i].p=(u+array[i].Waittime+array[i].Runtime)/array[i].Runtime; } for(i=0;i<q;i++) {if(array[i].num==1) if(array[i].p>s) {s=array[i].p; w=array[i].ID; t=array[i].Runtime; d=i; } } s=0; printf("%d\n",w); u+=t; g--; array[d].num=0; } printf("作业全部执行完毕!\n");}
热心网友
我在Linuxgcc4.0下面运行似乎没有报任何错误!以下是执行结果:请输入作业数(不大于100)3请输入各作业编号,已等待时间及运行时间:12.02.6 .3作业执行的顺序是:123作业全部执行完毕!你有没有发觉你的float变量u和s在第一次使用时都没有初始化?当然还有:结构体中Waittime是int,而后面赋值的k是float,结构体中Runtime是int,而后面赋值的n是float,会不会是这个问题呢?因为你的程序报错的原因在于浮点错误啊!如果没有初始化,将会得到不确定的结果编译器就会报错的你试试看吧
热心网友
#include"stdio。h"struct task{int ID;int num;int Runtime;int Waittime;float p;};struct task array[100];main(){int d,i,q,g,m,w;float k,n,s,t,u;printf("请输入作业数(不大于100)\n");scanf("%d",&q);while(q100){printf("数据输入错误!请重新输入\n");scanf("%d",&q);}g=q;printf("请输入各作业编号,已等待时间及运行时间:\n");for(i=0;i Waittime 是 int, k 是 float ?array[i]。Runtime=n; --- Runtime 是 int, n 是 float ?}printf("作业执行的顺序是:\n");while(g0){for(i=0;i 这句有用吗?肯定都通过的啦?array[i]。p=(u+array[i]。Waittime+array[i]。Runtime)/array[i]。Runtime;} --- u 这时未有赋值for(i=0;i 这句有用吗?肯定都通过的啦?if(array[i]。ps){s=array[i]。p;w=array[i]。ID;t=array[i]。Runtime;d=i;}}s=0;printf("%d\n",w);u+=t;g--;array[d]。num=0;} --- 找不到对应的 {printf("作业全部执行完毕!\n");} 请将上述问题改正后再试试。