枫谷 2016-11-29 05:33 采纳率: 50%
浏览 2947
已采纳

C++,运行输出nan,重复输出却恢复正常。

输出学生成绩时出现nan

为了加个单科平均分,我把前四行和第五行**分开来输出**的

但是第五行**前两个却显示nan**,第三个没问题

诡异的是,将第五行的输出代码**复制粘贴一遍**,却**恢复正常了!!**

难道后面的输出还会对前面的输出有影响吗?

 #include<iostream>
using namespace std;
int main()
{
    float grade[5][5];    //定义成绩数组 
    for(int j=0;j<4;j++)
    {
            for(int i=0;i<1;i++)
            {

            cout<<"请输入第"<<j+1<<"位同学的语文,数学英语成绩"<<endl;
            cin>>grade[j][i]>>grade[j][i+1]>>grade[j][i+2];
            grade[j][3]=grade[j][i]+grade[j][i+1]+grade[j][i+2];
            grade[j][4]=grade[j][3]/3;
            }
    }
    for(int j=0;j<3;j++)
    {
            for(int i=0;i<4;i++)
            {
            grade[4][j]+=grade[i][j];
            }
            grade[4][j]/=4;
    }

    cout<<'\t'<<"语文"<<'\t'<<"数学"<<'\t'<<"英语"<<'\t'<<"总分"<<'\t'<<"平均分"<<endl; 
    for(int j=0;j<4;j++)
    {
        cout<<"同学"<<j+1<<'\t'; 
        for(int i=0;i<5;i++)
        {
            cout<<grade[j][i]<<'\t' ;
         }
         cout<<endl;
     }


     cout<<"平均分"<<'\t';
     for(int i=0;i<3;i++)
     {
        cout<<grade[4][i]<<'\t';
     }
 } 

图片说明
图片说明
图片说明

  • 写回答

1条回答 默认 最新

  • shen_wei 2016-11-29 07:02
    关注

    float grade[5][5] = {0}; 请初始化为0。。。这样就可以了!!!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容