void display_totals();
int exam1[100][3];// array that can hold 100 numbers for 1st column
int exam2[100][3];// array that can hold 100 numbers for 2nd column
int exam3[100][3];// array that can hold 100 numbers for 3rd column
int main()
{
int go,go2,go3;
go=read_file_in_array;
go2= calculate_total(exam1[],exam2[],exam3[]);
go3=display_totals;
cout << go,go2,go3;
return 0;
}
void display_totals()
{
int grade_total;
grade_total=calculate_total(exam1[],exam2[],exam3[]);
}
int calculate_total(int exam1[],int exam2[],int exam3[])
{
int calc_tot,above90=0, above80=0, above70=0, above60=0,i,j;
calc_tot=read_file_in_array(exam[100][3]);
exam1[][]=exam[100][3];
exam2[][]=exam[100][3];
exam3[][]=exam[100][3];
for(i=0;i<100;i++);
{
if(exam1[i] <=90 && exam1[i] >=100)
{
above90++;
cout << above90;
}
}
return exam1[i],exam2[i],exam3[i];
}
int read_file_in_array(int exam[100][3])
{
ifstream infile;
int num, i=0,j=0;
infile.open("grades.txt");// file containing numbers in 3 columns
if(infile.fail()) // checks to see if file opended
{
cout << "error" << endl;
}
while(!infile.eof()) // reads file to end of line
{
for(i=0;i<100;i++); // array numbers less than 100
{
for(j=0;j<3;j++); // while reading get 1st array or element
infile >> exam[i][j];
cout << exam[i][j] << endl;
}
}
infile.close();
return exam[i][j];
}
2 回答
您传递给 calculate_total 的数据类型是错误的。C++ 将其视为指向 int 的指针。你传入一个二维数组。您必须使 calculate_total 函数的输入类型与数组的类型相匹配。
此外,所有这些额外的 [] 都是无效的语法。传入定义为数组的变量时,仅传入变量名。
// Invalid function call
f(myArray[]);
// Valid function call
f(myArray);
在实际功能内部,您要做什么?您是否尝试将exam1、exam2 和exam3 的元素修改为exam[100][3] 的值?
您还缺少 array 的声明int exam[100][3]
。我在您的代码中的任何地方都没有看到它。
在calculate_total 的返回中,您的return 语句格式不正确。你只能返回一个值,不像 Python 那样会返回一个包含三个元素的元组。
我在您的代码中观察到以下问题
read_file_in_array 需要括号。去=read_file_in_array;//无效的函数调用
将数组作为参数传递
display_totals 需要括号
一开始就缺少函数原型
display_totals 将不返回任何内容。但是你将它分配给一个变量
我不明白这个 calculate_total 函数在做什么。
如果这是您的原始代码,则此代码存在很多问题。我按原样使用此代码并使用 Turbo c++ 编译器进行编译。我得到了大约 24 个错误。
你能重构你的代码并编译它吗?