C语言的简单错误

[复制链接]
查看11 | 回复8 | 2007-12-14 12:40:04 | 显示全部楼层 |阅读模式
你把a和b都定义成float类型,因为你现在系统自动做了类型转换,两个int类型转换为float类型时会丢失精度,所以建议你都定义成float.
回复

使用道具 举报

千问 | 2007-12-14 12:40:04 | 显示全部楼层
a和b是int型的,系统会自动取整的。
回复

使用道具 举报

千问 | 2007-12-14 12:40:04 | 显示全部楼层
我晕!int是整型怎么可能是3.2或是2.7呀?!你把a,b定义成和area一样的浮点行就可以了!
回复

使用道具 举报

千问 | 2007-12-14 12:40:04 | 显示全部楼层
原因前面的都说了,我不赘述代码:main(){doublea,b;flontarea;a=3.2;b=2.7;area=a*b;printf("area=%f\n",area);}
回复

使用道具 举报

千问 | 2007-12-14 12:40:04 | 显示全部楼层
main(){floata,b;floatarea;a=3.2;b=2.7;area=a*b;printf("area=%f\n",area);}定义实型应该是用float而不是flont因为ab你都定义为了整型(int)所以系统会自动取整!取整并不是四舍五入!而是直接把小数部分舍掉!所以答案才是6.0000要想得到答案!把ab定义为float就好了!aa[50]; 这指的是用你做是struct a来定义一个a[50]的组数并不是一个函数 aa[50]是 a a[50]int i, k; aa.yuwen,aa.yuwen,aa.yuwen 都是错的是 a.yuwen,a.yuwen,a.yuwenfor(k = i; ; k--, i--) 死循环一个,并没有停顿的部分一看就知道不知从哪里抄的吧,绝对不是自己写的
回复

使用道具 举报

千问 | 2007-12-14 12:40:04 | 显示全部楼层
for(k = i; ; k--, i--) 这个你看看]
回复

使用道具 举报

千问 | 2007-12-14 12:40:04 | 显示全部楼层
你想要的结果是怎么样的啊?printf()没有提行,数字显示出来不直观.=============================你的i是人数,但是数组编号是0-49i=50, aa[50]并不存在
回复

使用道具 举报

千问 | 2007-12-14 12:40:04 | 显示全部楼层
跟你完善了一下 因该是自己编的 要抄的话原来错误太多了#include struct a {float yuwen, shuxue, yingwen; };void main() { struct a aa[50]; int i, k; printf("输入学生人数\n"); scanf("%d",&k); for(i=1;i<=k;i++) { scanf("%f%f%f",&aa.yuwen,&aa.shuxue,&aa.yingwen);} for(i=1;i<=k;i++){printf("%.2f %.2f %.2f\n",aa.yuwen,aa.shuxue,aa.yingwen);//只输出到小数点后2位}
回复

使用道具 举报

千问 | 2007-12-14 12:40:04 | 显示全部楼层
都用double吧~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行