程序一直有个错误,求c++大神帮忙纠正

2025-05-13 20:46:23
推荐回答(3个)
回答(1):

第5行 {sNo=no;strcpy(sName,name);*score=s[0];}
你那s是一维数组所以改为{sNo=no;strcpy(sName,name);*score=s;}

变量的初始化你也错了,括号0这种,你用的是什么编译器?
两处int total(0); 改为int total=0;
int a,b(0);改为int a=b=0;
int i,s,n(0); 改为int i=n=0; s不要了, 和下面的数组s重复了

所有的这里括号0都应该改为以上这种形式。

函数调用你也错了,
teststudent[i].output; 应改为teststudent[i].output();
其他的teststudent[i].calaverage也是,全部都要加上括号

以上是你的语法错误,因这边没这些软件,你可以自己测试一下

回答(2):

#include
#include
class Student{
public:
Student(int no,char name[10], int s[3])
{sNo=no;strcpy(sName,name);*score=s[0];}
Student();
char *getName(){return sName;}
int getNo(){return sNo;}
int calaverage(){
int total(0);
for(int i=0;i<3;i++)
total+=score[i];
return total/3;
}
void output(){
cout< cout< int i=0;
while(score[i])
{
cout< i++;
}
int total(0);
for(i;i<3;i++)
total+=score[i];
cout< }
friend void sort(Student *s,int n);
private:
int sNo;
char sName[10];
int *score;
double average;
};
void sort(Student *s,int n){
//int temp;
Student temp;
for(int i=0;i for(int j=0;j if(s[j].calaverage() {
temp=s[j]; // 定义的temp是int型,s[j]是Student型
s[j]=s[j+1];
s[j+1]=temp;
}
for(i=0;i cout<
}
void main(){
const int number=3;
Student teststudent[number];
//int i,s,n(0); // 这里的s

int i,n(0);
int no;
char name[10];
int s[3]; // 跟前面的s重定义,删掉前面??
for(i=0;i cin>>no>>name>>s[0]>> s[1]>> s[2];
teststudent[i]=Student(no,name,s);
}
for(i=0;i teststudent[i].output(); // output是函数调用

int a,b(0);
for(i=0;i {
b+=teststudent[i].calaverage(); // 函数调用,加括号
a=b/3;
}
for(i=0;i if(teststudent[i].calaverage()>=a)// 函数调用,加括号
n+=1;
cout<}

不知道程序是什么东西,编译通过而已,可能还有什么问题。。。。

回答(3):

提示什么错误贴出来啊