编程中(C++)double类型的形参与double*类型的实参不兼容,是什么意思?是哪里出错了啊?

#include <iostream>
#include <iomanip>
const int MAXNUMBER=100;
using namespace std;
char ans;
double average;
double a[MAXNUMBER];
char b[MAXNUMBER];
//假定每班人数不会超过100.

struct StudentGrade
{
double quiz1;
double quiz2;
double midexam;
double finexam;
};

StudentGrade student;

void input(StudentGrade& student1);

double averageGrade(StudentGrade student1);

void wordGrade(double grade);

void output(StudentGrade student1);

void printdata(StudentGrade student1,double a[MAXNUMBER],char b[MAXNUMBER]);

int main()
{
int numberOfstudents,number;
cout<<"How many students in your class?"<<endl;
cin>>numberOfstudents;
for(number=1;number<=numberOfstudents;number++)
{
input(student);
average=averageGrade(student);
wordGrade(average);
output(student);
a[number-1]=average;
b[number-1]=ans;
}
printdata(student,a[MAXNUMBER],b[MAXNUMBER]);
return 0;
}错误出现在倒数第二行printdata(student,a……)

改成printdata(student,a,b);
形参中double a[MAXNUMBER]这个参数相当于一个数组的指针,a[MAXNUMBER]本身是一个数组的元素,不是指针,所以类型不匹配。
看得出lz的c语言功力不够……追问

我没学C语言……我们现在直接上C++……铺垫就是Python……还有……指针是什么???

追答

天哪,居然不学c语言,你们是计算机专业吗,不懂c语言是不可能精通编程世界的

追问

我是电气信息类……以前的每一届都要学c,就我们……二了……

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-30
在 printdata(student, a[MAXNUMBER], b[MAXNUMBER]); 中的参数a[MAXNUMBER是double类型的具体数值, 而在void printdata(StudentGrade student1,double a[MAXNUMBER],char b[MAXNUMBER]);声明语句中double a[MAXNUMBER】声明的a[MAXNUMBER】是一个数组,所以不能将一个“double”类型的参数传递给“doule”类型的数组
相似回答