gpt4 book ai didi

c++ - 如何让我的程序正确地将数据传递到我的阵列? (家庭作业)

转载 作者:行者123 更新时间:2023-11-30 04:52:26 26 4
gpt4 key购买 nike

我已将我的数组大小设置为 20(假设它计数为 0,我将其设置为 19)。我将 for 循环设置为仅在 gradeCount <= to gradeCounted 时运行,但无论我输入数据多少次,它都会继续运行。如果我输入 3 个年级而不在每个年级之间按回车键,例如“23 23 23”,它将连续返回“输入年级”3 次,而不是我输入的年级数,以空格分隔。我不明白为什么它没有将数据传递到数组并正确结束 for 循环。我确定我的代码一团糟,抱歉。

还有,在stackoverflow输入代码的时候,说要缩进4个空格来格式化?我最初无法使用代码按钮缩进代码,而且也没有 {} 按钮。我错过了什么?只有在收到修复通知后我才能够修复它。感谢您抽出时间,我不想成为你们的麻烦。

//This program asks user how many grades there are, inputs grades, and  displays median of said grades.

#include <iostream>
using namespace std;

//Variables
////////////////////const int limitGrades = 20; //Array "boxes"? //Ignore this //for now.
int gradeCounted; //Number of grades from user.
const int SIZE = 19;

//Array
float grades[19]; //Max grades that can be entered.

//Functions
void gradeTaker()
{
cout << "You may input up to 20 grades. \n";
cout << "First enter the number of grades you have: \n";
cin >> gradeCounted;
//requests how many grades there are and stores them in array
for (int gradeCount = 0; gradeCount <= gradeCounted + 1; gradeCount++)
{
for (float &grade : grades)
{
cout << "Enter grade: \n";
cin >> grade;
}
}
};

int main()
{
gradeTaker();

cout << "grades so far";
for (int grade : grades)
cout << grade << endl;

system("pause");
}

最佳答案

数组的大小与您访问它的方式是分开的。访问 20 个值等同于访问从 0 到 19 的索引。

float grades[20];
for(size_t i = 0; i < 20; i++){ // print all values of grades
std::cout << grades[i] << "\n";
}

此外,gradeTaker 中的 for 循环会要求您为每个 grades 的索引提供一个值,总共 gradeCounted + 2 次。要解决此问题,只需迭代您要为其分配值的索引,如下所示:

for (int gradeCount = 0; gradeCount < gradeCounted; gradeCount++){
cout << "Enter grade: \n";
cin >> grade[gradeCount];
}

最后... main 函数中的 for 循环将遍历整个数组,其中可能包含未初始化的值。您应该初始化数组或使用像 std::vector 这样的动态数据结构,并且只是 push_back 必要的值。

(P.s. 突出显示文本 block 中的代码并按 CTRL+K 缩进。)

关于c++ - 如何让我的程序正确地将数据传递到我的阵列? (家庭作业),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54383167/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com