问题及代码:
/*
*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;
}
学习心得:认真落实自己的错误,找出原因,而不是抄上别人的就行,但这次我还是不知道那个错误代码为什么错??不懂啊!!