我的任务是计算学生的平均成绩,并在提示计算机时将其打印出来。问题是我的代码仅打印出名称Mary和一些0和0x6022320。
成绩所在的文件为:
Mary Smith 10 5 8 10 6 2 10
Ken Lewis 5 3 2 10 8 9 10
这是我的代码:
#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>
using namespace std;
string studentnames_array[2];
int studentgrades_array[2][7];
char studentfinal_array[2];
void get_grade();
void compute_grade();
void displaygrade(int b);
int main()
{
get_grade();
compute_grade();
for (int i=0; i<2; i++)
{displaygrade(i);}
return 0;
}
void get_grade()
{
ifstream myfile;
myfile.open("infile.txt");
for(int a=0;a<2; a++)
{
myfile >> studentnames_array[a] >> studentgrades_array[a][0] >> studentgrades_array[a][1] >> studentgrades_array[a][2] >> studentgrades_array[a][3] >> studentgrades_array[a][4] >> studentgrades_array[a][5]>> studentgrades_array[a][6];
}
}
void compute_grade()
{
for (int d=0; d<2; d++)
{
float total = 0;
for (int e=0; e<7; e++)
{
total = total + studentgrades_array[d][e];
}
studentfinal_array[d] = total/7.0;
}
}
void displaygrade(int b)
{
cout << setw(8) << left << studentnames_array[b]<<"\n";
for (int c=0; c<7; c++) { cout<< "\t\t"<<right<<setw(4)<<studentgrades_array[b][c];
}
cout << setw(6) << studentgrades_array[b] << "\n";
}
这是我的输出:
Mary
0 0 0 0 0 0 00x602230
0 0 0 0 0 0 00x60224c