所以我一直在尝试制作一个小程序,以5个学生的成绩为准,并列出超过70分的分数。
到目前为止,这是我的代码,该程序已成功比较了标记,例如我输入了70、66、99、81、1。它将列出99和81,但出于某种原因也列出了1,有时32.
#include<iostream>
#include<string>
using namespace std;
int main(){
int size = 5;
int marks[size];
int over70[size];
for(int i = 0; i < size; i++){
cout<<"Enter the marks of 5 students: "<<endl;
cin>>marks[i];
}
//finding marks over 70
for(int i = 0; i < size; i++){
if(marks[i] > 70){
over70[i] = marks[i];
}
}
//printing out values over 70
for(int i = 0; i < size; i++){
cout<<"First student "<<i+1<<endl;
cout<<over70[i]<<endl;
}
return 0;
}
这不是家庭作业,但是您不必立即给我答案,我很乐意得到任何人的提示或指导。
答案 0 :(得分:1)
您的
{ "chat_id": "222231", "from": "\"{\"id\":201232,\"name\":\"John\",\"user\":\"User_Admin\"}\"", "type": "text", "data": "yes" }
包含垃圾值的数组。
假设您的数组最初有5个垃圾值,现在当您输入其标记小于70时,该数组的其他元素将仍然为垃圾值。
因此,如果数组over70
仅包含两个学生的分数,则您仍在打印整个数组,这将显示出意外的值。
您可以在这里做的事情是计算打分大于70的学生人数,并且只运行第三次循环,这样只有那些打分大于70的学生的打标才会被打印出来
答案,如果需要的话。
over70
// j是超过70分的学生人数