数组副本打印出用户从未输入过的数字

时间:2018-07-14 01:23:41

标签: c++ arrays

所以我一直在尝试制作一个小程序,以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;

}

这不是家庭作业,但是您不必立即给我答案,我很乐意得到任何人的提示或指导。

1 个答案:

答案 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分的学生人数