C++ 打印出用户从未输入的数字的数组副本
所以我一直在尝试做一个小程序,把5个学生的成绩记录下来,列出70分以上的分数 这是我到目前为止的代码,程序已经成功地比较了分数,比如说我输入了70,66,99,81,1。它将列出99和81,但出于某种原因,也会列出1,有时是32C++ 打印出用户从未输入的数字的数组副本,c++,arrays,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];
#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;
}
#包括
#包括
使用名称空间std;
int main(){
int size=5;
整数标记[大小];
int大于70[大小];
对于(int i=0;i超过70个数组包含垃圾值
假设您的数组最初有5个垃圾值,现在当您输入小于70的标记时,该数组的其他元素将保持垃圾值
因此,如果数组超过70
只包含两个学生的分数,则仍在打印整个数组,这将显示意外值
这里可以做的是计算分数超过70分的学生数量,然后只运行第三个循环那么多次,这样只有那些分数超过70分的学生才会被打印出来
答案,如果你想要的话
intj=0;
对于(int i=0;i70)
{
超过70分[j]=分[i];
j++
}
}
//j是70分以上的学生人数
首先,您应该初始化数组(marks
和over70
)第二,请注意over70
的大小与marks
的大小不同提示:这是因为“print out”部分打印的是所有over70数组,其中不仅包含您输入的少数项(缺少某些“if”)另一个问题:你需要初始化变量,因为它们可能包含随机值。可变长度数组不是C++;从使用正确的语言开始;-----所以我尝试调整我的程序,如果(Mc[i]>70){计数+++ },我现在正在做。;但现在我不知道如何初始化我的70多个数组。初始化意味着为变量提供一些初始值。int marks[5]={0};//所有元素0
它会将您的所有元素初始化为零刚才看到了隐藏的答案,这是一种比增加计数更好的计数元素的方法。您可以使用count70的索引作为其计数变量。我真的很困扰,您显然不能在扰流板标记中包含多行代码块。(我刚刚试图编辑您的答案以删除难看的反勾格式,但无法使其工作。)我将尝试理解代码。因此,首先我们设置j=0(这将是70多个数组的大小)接下来,我们为数组执行for循环,循环标记数组中的每个元素,以尝试找到哪个元素的值超过70。如果marks[i]>70为true,那么我们将j作为超过70个数组大小,最后我们使它等于标记[i]。