如何在Input_Data函数中纠正我的嵌套以进行循环
How to correct my nested for loop in the input_data function?
我的问题是,在input_data((函数中,函数为两个参数,即ifile和statistics_array。该功能通过五组学期的最终考试数据读取(循环(并填充了statistics_array的一部分。觉得循环是错误的,因为最后,当我输出所有信息时,我的代码和文件内容在下方如何解决此问题?
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
using namespace std;
struct ExamType {
string semester_name;
int year;
int num_grades;
float average_grade;
int grades_above_average;
int grades_below_average;
int grades_array[35];
};
void input_data(ExamType[], ifstream&);
void calculate_statistics(ExamType[]);
void print_results(ExamType[]);
void calculate_average(ExamType[], int);
void calculate_above_average(ExamType[], int);
void calculate_below_average(ExamType[], int);
int main()
{
char make_type;
ifstream myfile;
ExamType statistics_array[5];
myfile.open("infile.txt");
input_data(statistics_array, myfile);
calculate_statistics(statistics_array);
print_results(statistics_array);
}
void input_data(ExamType statistics_array[], ifstream& myfile)
{
int num_students;
for (int i = 0; i < 5; i++) {
myfile >> statistics_array[i].semester_name;
myfile >> statistics_array[i].year;
myfile >> statistics_array[i].num_grades;
for (int j = 0; j < statistics_array[i].num_grades; j++) {
statistics_array[j].grades_array[i];
}
}
}
void calculate_statistics(ExamType statistics_array[])
{
for (int index = 0; index < 5; index++)
{
calculate_average(statistics_array, index);
calculate_above_average(statistics_array, index);
calculate_below_average(statistics_array, index);
}
}
void calculate_average(ExamType statistics_array[], int index)
{
float sum=0;
float total_average;
for (int i = 0; i < statistics_array[index].num_grades; i++)
{
sum=sum+statistics_array[index].grades_array[i];
}
total_average = sum / statistics_array[index].num_grades;
statistics_array[index].average_grade = total_average;
}
void calculate_above_average(ExamType statistics_array[], int index)
{
int count = 0;
for (int i = 0; i < statistics_array[index].num_grades; i++)
{
if (statistics_array[index].grades_array[index] > statistics_array[index].average_grade)
{
count++;
}
statistics_array[index].grades_above_average = count;
}
}
void calculate_below_average(ExamType statistics_array[], int index)
{
int count = 0;
for (int i = 0; i < statistics_array[index].num_grades; i++)
{
if (statistics_array[index].grades_array[index] < statistics_array[index].average_grade)
{
count++;
}
statistics_array[index].grades_below_average = count;
}
}
void print_results(ExamType statistics_array[])
{
for (int i = 0; i < 5; i++)
{
cout << "Analysis of exams in fall" << " " << statistics_array[i].semester_name << statistics_array[i].year<<endl;
cout << endl;
cout << "The number of grades above average are" << " " << statistics_array[i].grades_above_average<<endl;
cout << "The number of grades above average are" << " " << statistics_array[i].grades_below_average<<endl;
}
}
和输出:
Fall 2013 17
54
96
68
99
35
81
93
32
12
23
45
55
66
77
88
99
100
Spring 2014 10
99
48
22
41
66
80
91
55
83
92
Fall 2014 12
32
12
23
45
51
62
97
38
59
80
91
98
Spring 2015 20
93
41
60
80
90
55
88
99
32
12
23
45
55
66
77
88
99
100
99
98
Fall 2015 15
92
45
61
86
90
55
82
92
32
12
23
45
53
61
73
int j = 0; j < statistics_array[i].num_grades; j++) {
myfile >> statistics_array[i].grades_array[j];
}
input_data函数嵌套循环代码应根据上述修改。
相关文章:
- 在nlohmann json中,如何将嵌套对象的数组转换为嵌套结构的向量
- C++-模板嵌套类的引用初始化无效
- 无法掌握嵌套循环的写作技巧
- 在 c++ 中实现嵌套循环的更短方法吗?
- 2 个嵌套循环的时间复杂度
- C++中具有嵌套条件的 X 模式
- 在嵌套 lambda 的情况下如何初始化 lambda 捕获?
- 如何在该接收类之外声明嵌套类的方法
- 如何从另一个嵌套类中调用某个封闭类的嵌套类的函数指针成员的值?
- 瓦尔格林德报告在 =带有嵌套shared_ptrs的运算符上的读取错误
- 如何访问嵌套类的数据?
- 另一个类中嵌套模板的外部实例化
- 没有从Singleton到嵌套Listener*的可行转换
- 在模板类内部定义的枚举上的嵌套类的部分专用化
- 两个嵌套循环的运行时间复杂性:二次型还是线性
- 什么是"递归嵌套模板"的实际用法示例?
- 覆盖我正在扩展的嵌套类的方法
- 我试图在 C++03 中嵌套 boost 的"map_list_of",但显然构造模棱两可?
- 在我的解释器中绑定嵌套函数的更好方法
- 如何将我的实现包含在一些头文件(嵌套类)的cpp文件中