下面是输出结构体中最大数值的成员.max 和 per 都是float型.
为什么结构体中成员中的float输出时出现错误: floating point error:domain
(为了方便只贴了一段)
#define S struct student
S
{
char name[15];
float score[5];
}per[10];
for(i=0;i<10;i++)
for(j=0;i<5;j++)
if(max<per[i].score[j]) max=per[i].score[j];
for(i=0;i<10;i++)
for(j=0;i<5;j++)
if(max=per[i].score[j])
{
printf("%-7s%-7.1f%-7.1f%-7.1f%-7.1f%-7.1f\n",per[i].name,per[i].score[0],
per[i].score[1],per[i].score[2],per[i].score[3],per[i].score[5]);
break;
}
----------------解决方案--------------------------------------------------------
for(i=0;i<10;i++)
for(j=0;i<5;j++)
if(max<per[i].score[j]) max=per[i].score[j];
LZ 这个我 看不懂
你这个循环是怎么结束的 ?
MAX的值变 但是 I的值根本没变 貌似循环不能结束吧
----------------解决方案--------------------------------------------------------
我也遇到过相似的问题,结构体里定义的float不能直接使用,用一个中间量转换一下试试看.是开发环境的问题,网上有相关的解释~~
----------------解决方案--------------------------------------------------------
不能吧 我以前直接用结构体的float 有什么不能用的 ?
哪有解释 能发个连接么?
----------------解决方案--------------------------------------------------------
回一楼的
第二个for中的i 应该改成j ..不好意思.
for(i=0;i<10;i++)
for(j=0;j<5;j++)
----------------解决方案--------------------------------------------------------
呵呵 改过之后呢?
好用了么?
具体的没看就看 循环就不对 就没看下面 .........
----------------解决方案--------------------------------------------------------
"per[i].score[5]"好象多余了.
if(max<per[i].score[j]) max=per[i].score[j]; 少")"
----------------解决方案--------------------------------------------------------
眼晕!!!!!!!!!!!!!!!!!!!
注意规范,代码啊!
----------------解决方案--------------------------------------------------------
如果是float的问题,看这个帖子中我在8楼的回复:
http://bbs.bc-cn.net/viewthread.php?tid=129039
----------------解决方案--------------------------------------------------------