第十二周 项目二-OJ平台题目中多种输入形式的处理---以某个特殊输入为结束标志(3)刑警的射击成绩

问题及代码:

/*
*Copyright (c) 2014,烟台大学计算机学院
*All rights reserved.
*文件名称:test.cpp
*作者:吴胜男
*完成日期:2014年11月17日
*版本号:v1.0
*
*问题描述:刑警培训结束,进行了射击科检验。教官要对学员射击的成绩进行分析,得出各分数段人数统计。
*输入描述:输入若干个0-10间的整数(最高10环,脱靶为0)表示成绩,人数不确定,输入以一个0-10以外的数作为结束。
*程序输出:各分数段(A:9环以上,B:7环以上,C:5环以上,D:不足5环)的人数,每项成绩占一行
*/
#include <iostream>

using namespace std;

int main()
{
    int a=0,b=0,c=0,d=0,score;

    while(cin>>score&&score>=0&&score<=10)
    {

        switch (score)
        {
        case 0:
        case 1:
        case 2:
        case 3:
        case 4:
            d++;
            break;
        case 5:
        case 6:
            c++;
            break;
        case 7:
        case 8:
            b++;
            break;
        case 9:
        case 10:
            a++;
        }

    }
    cout<<"A:"<<a<<endl;
    cout<<"B:"<<b<<endl;
    cout<<"C:"<<c<<endl;
    cout<<"D:"<<d<<endl;


    return 0;
}

运行结果:

知识点总结:字母也可以作为整型的符号,如int score;一开始出错原因是在a++;后面加了break;swicth语句结束后,还加了cin>>score;经过单步调试,如果这样写并不是按顺序进行计算。

以下是错误代码:

#include <iostream>

using namespace std;

int main()
{
    int a=0,b=0,c=0,d=0,score;

    while(cin>>score&&score>=0&&score<=10)
    {

        switch (score)
        {
        case 0:
        case 1:
        case 2:
        case 3:
        case 4:
            d++;
            break;
        case 5:
        case 6:
            c++;
            break;
        case 7:
        case 8:
            b++;
            break;
        case 9:
        case 10:
            a++;
            break;
        }
       cin>>score;
    }
    cout<<"A:"<<a<<endl;
    cout<<"B:"<<b<<endl;
    cout<<"C:"<<c<<endl;
    cout<<"D:"<<d<<endl;


    return 0;
}

学习心得:认真落实自己的错误,找出原因,而不是抄上别人的就行,但这次我还是不知道那个错误代码为什么错??不懂啊!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值