我是C ++的新手,正在尝试在NetBeans中创建一个基本程序。以下是我提出的代码:
int main() {
unsigned scores[11] = {};
unsigned grade;
while (cin >> grade){
if (grade <= 100){
++scores[grade/10];
}
}
for(int i = 0; i < 10; i++){
cout << scores[i] << endl;
}
return 0;
}
但是,当我输入一系列数字时
2 15 90 99 100
按回车键,程序仍在运行,没有显示结果。为什么会这样?有人可以帮帮我吗?在此先感谢您的帮助!
答案 0 :(得分:1)
你需要发送流结束字符,UNIX下的ctrl + d和windows下的ctrl-z。您还可以重构代码以读取一行(直到换行符),然后解析它:
unsigned scores[11] = {};
unsigned grade;
std::string line;
if (std::getline(cin, line)) {
std::stringstream str(line);
while (str >> grade) {
if (grade <= 100) {
++scores[grade / 10];
}
}
}
for(int i = 0; i < 10; i++){
cout << scores[i] << endl;
}