question!!!!
狂砍八条街 2009-04-25 08:56:10 朋友的一个程序,编译通过,输入各项数据后,为什么不执行s.set()函数。我知道怎么改,把cin>>Snum[4]以及cin>>Sname[9]改为cin>>Snum和cin>>Sname后就能正确运行了,哪位高人解释一下为什么要这样改?
#include<iostream.h>
#include<string.h>
/*
编写一个程序,已有若干个学生数据,这些数据包括学号,姓名,c,cpp,java三门课成绩,
求各门课程的平均分。要求设计不同的成员函数求各门课程的平均分。
*/
class Cstudent
{
private:
char num[4];
char name[9];
float a,b,c,equel;
public:
void set(char Snum[4],char Sname[9],float Sa,float Sb,float Sc);
void disp();
};
void Cstudent::set(char Snum[4],char Sname[9],float Sa,float Sb,float Sc)
{
strcpy(num,Snum);
strcpy(name,Sname);
a=Sa;
b=Sb;
c=Sc;
}
void Cstudent::disp()
{
cout<<"学号:"<<num<<"姓名:"<<name<<"C语言平均分:"<<a<<endl;
}
void main()
{
Cstudent s;
char Snum[4];
char Sname[9];
float a1,a2,a3;
cout<<"请输入学号:";
cin>>Snum[4];
cout<<"请输入姓名:";
cin>>Sname[9];
cout<<"请输入C语言成绩:";
cin>>a1;
cout<<"请输入C++成绩:";
cin>>a2;
cout<<"请输入Java成绩:";
cin>>a3;
s.set(Snum,Sname,a1,a2,a3);
s.disp();
}