Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 打印出用户从未输入的数字的数组副本_C++_Arrays - Fatal编程技术网

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

C++ 打印出用户从未输入的数字的数组副本,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];

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

}
#包括
#包括
使用名称空间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]。