【发布时间】:2015-05-24 01:54:24
【问题描述】:
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
double hw = 0, hwTotal = 0, hwAverage[3], id[3], project = 0, projTotal = 0, projectAverage[3], hwProj, finalExam[3], total[3];
int i = 0, j = 0, k = 0;
for (j = 0; j < 3; j++){
cout << "Input student ID: ";
cin >> id[i];
for (i = 0; i < 4; i++){
cout << "Input homework assignment grade: ";
cin >> hw;
hwTotal = hwTotal + hw;
}
hwAverage[j] = hwTotal / 4;
for (i = 0; i < 2; i++){
cout << "Input project grade: ";
cin >> project;
projTotal = projTotal + project;
}
projectAverage[j] = projTotal / 2;
hwProj = (hwAverage[j] + projectAverage[j]) / 2;
cout << "Input final exam grade: ";
cin >> finalExam[j];
total[j] = (finalExam[j] + hwProj) / 2;
}
cout << endl;
for (k = 0; k < 3; k++){
cout << "Student ID: " << id[k] << endl;
cout << "Homework Average: " << hwAverage[k] << endl;
cout << "Project Average: " << projectAverage[k] << endl;
cout << "Final exam grade: " << finalExam[k] << endl;
cout << "Final average: " << total[k] << endl;
cout << endl;
}
return 0;
}
由于某种原因,当我运行此代码时,我的输出如下所示:
- 输入学生证:123
- 输入家庭作业等级:100
- 输入家庭作业等级:100
- 输入家庭作业等级:100
- 输入家庭作业等级:100
- 输入项目等级:100
- 输入项目等级:100
- 输入期末考试成绩:100
- 输入学号:12
- 输入家庭作业等级:40
- 输入家庭作业等级:40
- 输入家庭作业等级:40
- 输入家庭作业等级:40
- 输入项目等级:40
- 输入项目等级:40
- 输入期末考试成绩:40
- 输入学生证:1
- 输入家庭作业等级:20
- 输入家庭作业等级:20
- 输入家庭作业等级:20
- 输入家庭作业等级:20
- 输入项目等级:20
- 输入项目等级:20
输入期末考试成绩:20
学生编号:123
- 平均功课:100
- 项目平均:100
- 期末考试成绩:100
最终平均:100
学生编号:-9.25596e+061
- 家庭作业平均:140
- 项目平均:140
- 期末考试成绩:40
最终平均:90
学生编号:1
- 平均功课:160
- 项目平均:160
- 期末考试成绩:20
最终平均:90
按任意键继续。 . .
我得到一个堆栈溢出错误。我对 C++ 很陌生,我正在制作一个程序,要求用户提供 10 个家庭作业成绩、2 个项目成绩和 10 个学生的期末考试成绩(我的程序中的数字较低,因此我可以测试更容易)。我打算分别平均家庭作业成绩和项目成绩,然后平均这些平均数,然后将该平均数与期末考试成绩平均为总平均数(对不起所有平均数),但它似乎不起作用并且我不知道为什么。就像我说的,我对 C++ 很陌生,甚至对数组也很陌生,所以你认为你们中的任何人都可以给我一些关于我哪里出错的见解吗?非常感谢!
【问题讨论】:
-
你认为在同一行声明变量会让你的代码更快吗?
-
那么如何为循环声明不同的变量呢?而不是在整个过程中使用
i -
我并没有考虑通过将它们都声明在同一行上来加快速度,这对我来说更容易可视化,而且对我来说看起来更有视觉效率。老实说,这只是视觉上的东西。
-
hwAverage[10],projectAverage[10],total[10]和finalExam[10]- 你在这里越界了。 -
我刚刚注意到并修复了它们,并且我为循环添加了更多变量,但我似乎无法让它工作。事实上,只有第一个学生工作的平均值,然后下一个学生的信息不正确。我已经更新了上面的代码。
标签: c++ arrays for-loop stack overflow