当前位置: 代码迷 >> C语言 >> [求助]结构体~错哪了~~
  详细解决方案

[求助]结构体~错哪了~~

热度:292   发布时间:2007-06-05 02:00:12.0
[求助]结构体~错哪了~~

下面是输出结构体中最大数值的成员.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
----------------解决方案--------------------------------------------------------
  相关解决方案