注册 登录
编程论坛 C++教室

怎样找出程序里面的错误啊,新手表示看不懂教程。。。

atruth 发布于 2013-11-18 10:20, 723 次点击
#include <iostream>
using namespace std;

int main()
{
    int n;
   
    int SumMark;   

    float MaxMark;
    float MinMark;  
    float AvgMark;

    int Num90;  
    int Num80;
    int Num70;
    int Num60;  
    int Num0;
   
    cout << "请输入总人数n=" << endl;
    cin >> n;

    for(int i=0; i<=n; i++)
    {
        
        int Mark;  

        cout << "输入第" << i << "个人的成绩:";
        cin >> Mark;
        
        SumMark += Mark;  
         
        if( Mark > MaxMark )
            MaxMark = Mark;   
        else if( Mark < MinMark )
            MinMark = Mark;  

        switch( Mark/10 )  
        {
        case 9:
        case 10:
            Num90++;
        case 8:
            Num80++;
        case 7:
            Num70++;
        case 6:
            Num60++;
        default:
            Num0++;
        }
    }

    AvgMark = SumMark/n;   //计算平均分

    //输出结果
    cout << "总人数:" << n << endl;
    cout << "最高分:" << MaxMark << endl;
    cout << "最低分:" << MinMark << endl;
    cout << "平均分:" << AvgMark << endl;
    cout << "90-100的人数:" << Num90 << endl;
    cout << "80-89的人数:" << Num80 << endl;
    cout << "70-79的人数:" << Num70 << endl;
    cout << "60-69的人数:" << Num60 << endl;
    cout << "60分以下人数:" << Num0 << endl;

    return 0;
}
 这段程序显示是0error 和 0fault但是运行就有错,怎么能找到它里面的错误并改正啊> <
10 回复
#2
blueskiner2013-11-18 10:22
调戏之
#3
i802862013-11-18 10:37
float MaxMark;
float MinMark;

再有,如果某个人的成绩是66.5分,int型Mark会怎么处理这个数据?

[ 本帖最后由 i80286 于 2013-11-18 10:43 编辑 ]
#4
peach54602013-11-18 11:44
调试
#5
atruth2013-11-18 13:54
回复 4楼 peach5460
知道调试但是不知道怎么改正> < 版主大大说详细点吧新手不懂
#6
atruth2013-11-18 13:55
回复 3楼 i80286
好高深不是很懂。。。
#7
peach54602013-11-18 14:23
以下是引用atruth在2013-11-18 13:54:53的发言:

知道调试但是不知道怎么改正> < 版主大大说详细点吧新手不懂

百度
#8
云起2013-11-18 16:27
注意初始化即可。

int main()
{
    int n;
   
    int SumMark=0;   

    float MaxMark=0.0;
    float MinMark=101.0;  
    float AvgMark=0.0;

    int Num90=0;  
    int Num80=0;
    int Num70=0;
    int Num60=0;  
    int Num0=0;
   
    cout << "请输入总人数n=" << endl;
    cin >> n;

    for(int i=0; i<n; i++)
    {
        
        int Mark;  
        cout << "输入第" << i+1 << "个人的成绩:";
      
        cin >> Mark;
        
         SumMark += Mark;
         
        if( Mark > MaxMark )
            MaxMark = Mark;   
        if( Mark < MinMark )
            MinMark = Mark;  

        switch( Mark/10 )  
        {
        case 9:
        case 10:
            Num90++ ;
            break;
        case 8:
            Num80++;
            break;
        case 7:
            Num70++;
            break;
        case 6:
            Num60++;
            break;
        default:
            Num0++;
            break;
        }
        
    }

    AvgMark = SumMark/n;   //计算平均分

    //输出结果
    cout << "总人数:" << n << endl;
    cout << "最高分:" << MaxMark << endl;
    cout << "最低分:" << MinMark << endl;
    cout << "平均分:" << AvgMark << endl;
    cout << "90-100的人数:" << Num90 << endl;
    cout << "80-89的人数:" << Num80 << endl;
    cout << "70-79的人数:" << Num70 << endl;
    cout << "60-69的人数:" << Num60 << endl;
    cout << "60分以下人数:" << Num0 << endl;

    return 0;
}
#9
左手拉一只猫2013-11-19 12:51
自己学会调程序才是王道额。。。
#10
atruth2013-11-20 14:55
回复 9楼 左手拉一只猫
正在学。。。就是看不太懂。。。
#11
maanbang2013-11-20 20:51
回复 楼主 atruth
变量初始化,变量不会自己初始化为0,
另外,仔细看看书switch,理解下要加break;不然所有的数都加一
1