这个C程序运行结果出现-NAN是为什么?
原题为:一个学习小组有5个人,每个人有三门课的考试成绩。求全组每一科的平均成绩和各科总平均成绩。(b[3]存放所求得各科平均成绩,设变量avg为全组各科总平均成绩。三科科...
原题为:一个学习小组有5个人,每个人有三门课的考试成绩。求全组每一科的平均成绩和各科总平均成绩。
(b[3]存放所求得各科平均成绩,设变量avg为全组各科总平均成绩。三科科目分别为math、C、dbase。)程序如下:
#include <stdio.h>
void main()
{
int i,j,a[5][3];
float b[3],avg;
for(i=0;i<5;i++)
{ printf("Please input the scores of No.%d:\n",i+1);
for(j=0;j<3;j++)
{ scanf("%d",&a[i][j]);
b[j]+=a[i][j];
}
}
for(j=0;j<3;j++)
b[j]=b[j]/5;
avg=(b[0]+b[1]+b[2])/3;
printf("math:%.2f\nC:%.2f\ndbase:%.2f\n",b[0],b[1],b[2]);
printf("total:%.2f\n",avg);
}
运行之后b[0]跟b[2]的值都可以正确输出,就是b[1]跟total的值输出为-NAN,这是为什么呢?
觉得很奇怪,为什么处于中间的b[1]倒是不能正确输出了呢?total不能正确输出应该也是因为b[1]不能正确输出的缘故吧?劳烦知道的大神提点一下小弟,若是有用,必定第一时间采纳为满意回答。 展开
(b[3]存放所求得各科平均成绩,设变量avg为全组各科总平均成绩。三科科目分别为math、C、dbase。)程序如下:
#include <stdio.h>
void main()
{
int i,j,a[5][3];
float b[3],avg;
for(i=0;i<5;i++)
{ printf("Please input the scores of No.%d:\n",i+1);
for(j=0;j<3;j++)
{ scanf("%d",&a[i][j]);
b[j]+=a[i][j];
}
}
for(j=0;j<3;j++)
b[j]=b[j]/5;
avg=(b[0]+b[1]+b[2])/3;
printf("math:%.2f\nC:%.2f\ndbase:%.2f\n",b[0],b[1],b[2]);
printf("total:%.2f\n",avg);
}
运行之后b[0]跟b[2]的值都可以正确输出,就是b[1]跟total的值输出为-NAN,这是为什么呢?
觉得很奇怪,为什么处于中间的b[1]倒是不能正确输出了呢?total不能正确输出应该也是因为b[1]不能正确输出的缘故吧?劳烦知道的大神提点一下小弟,若是有用,必定第一时间采纳为满意回答。 展开
3个回答
展开全部
你这个b数组都没初始化过吧。。。怎么可能会有正确的输出的。。。好神奇
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
float b[3]={0};初始化
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询