C++ 为什么第一个循环的值不同?
因此,我创建了一个程序,用户输入多少学生来计算他们的测验分数,并要求用户提供3个测验分数,然后将其相加。目前,我所有的功能都正常,除了获取测验分数的总和,在第一个循环中,它有一个很大的值。(见下图) 这是我的代码:C++ 为什么第一个循环的值不同?,c++,C++,因此,我创建了一个程序,用户输入多少学生来计算他们的测验分数,并要求用户提供3个测验分数,然后将其相加。目前,我所有的功能都正常,除了获取测验分数的总和,在第一个循环中,它有一个很大的值。(见下图) 这是我的代码: #include <iostream> #include <conio.h> using namespace std; int main() { int count; string student[100]; c
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
int count;
string student[100];
cout<<"How many students do you want to calculate for? ";
cin>>count;
cin.ignore();
int grades[count][3];
for (int i = 0; i<count; i++) {
cout<<"Enter Student Name: ";
getline (cin, student[i]);
cout<<"Enter quiz scores: ";
for (int a = 0; a<3; a++) {
cin>>grades[i][a];
}
cin.ignore();
}
int sum[count], sum2[count];
for (int i = 0; i<count; i++) {
for (int a = 0; a<3; a++) {
sum[i] = grades[i][a];
sum2[i] = sum2[i] + sum[i];
}
}
cout<<"\n";
for (int i = 0; i<count; i++) {
cout<<"\nStudent Name: "<<student[i]<<" | Quiz Scores: ";
for(int a = 0; a<3; a++) {
cout<<grades[i][a]<<" ";
}
cout<<"| Sum of grades: "<<sum2[i];
}
}
#包括
#包括
使用名称空间std;
int main(){
整数计数;
弦乐学生[100];
邮政帐户;
cin.ignore();
国际职系[计算][3];;
对于(int i=0;i第一个循环的值很大,因为我没有为sum2[i]
设置起始值,所以我在第一个for循环上添加了sum2[i]=0;
for (int i = 0; i<count; i++) {
sum2[i] = 0; \\Set the starting value for sum2[i] to 0
for (int a = 0; a<3; a++) {
sum[i] = grades[i][a];
sum2[i] = sum2[i] + sum[i];
ave[i] = sum2[i]/3;
}
}
for(int i=0;iIf输出是一个文本:请将其复制粘贴到问题中,而不是从中创建图像。除了使用,您没有初始化sum
或sum2
中的值。如果您没有为sum2[i]=sum2[i]+sum[i]
提供起始值,您希望sum2[i]=sum2[i]做什么
?噢,谢谢!我现在得到了:)它将有一个intedefine值,读取它将给出程序未定义的行为。您还需要对所有其他sum2[I]
执行相同的操作,而不仅仅是sum2[0]
,因为后者只会将问题转移到循环的第二次迭代(不管它是否最终表现出来;这是UB)。你可能会发现初始化所有变量是一个很有用的好习惯。这样,当你看到一个未初始化的变量时,它会感觉像是一种代码气味。