跪求大神看看我这个C++程序错在哪儿了,为什么实现不了想要的结果。

2025-01-07 04:20:07
推荐回答(2个)
回答1:

  /*

  有5个学生,每个学生的数据结果包括学号、姓名、年龄、C++成绩、数学成绩和英语成绩、总平均分,

  从键盘输入5个学生的学号、姓名、3门课的成绩,计算3门课的总平均分,最后将5个学生的数据输出。

  要求各个功能用函数来实现。

  */

  #include

  using namespace std;

  #define NUM 5

  struct STUD

  {

          int num;

          char name[20];

          float grade[3];

  };

  STUD Input(STUD all)

  {

          cout<<"输入学号:";

          cin>>all.num;

          cout<<"输入姓名:";

          cin>>all.name;

          cout<<"输入C++成绩:";

          cin>>all.grade[0];

          cout<<"输入数学成绩:";

          cin>>all.grade[1];

          cout<<"输入英语成绩:";

          cin>>all.grade[2];

          return all;

  }

  float count(STUD all)

  {

          int i;

          float sum=0;

          for(i=0;i<3;i++)

          {

                  sum+=(all.grade[i]);

          }

          sum=sum/3;

          return sum;

  }

  void Output(STUD all,float average)

  {

          cout<<"学号:";

          cout<

          cout<<"姓名:";

          cout<

          cout<<"C++成绩:";

          cout<

          cout<<"数学成绩:";

          cout<

          cout<<"英语成绩:";

          cout<

          cout<<"平均成绩:";

          cout<

  }

  int main()

  {

          int j=0;

          STUD all[NUM];

          float sum[NUM];

          for(j=0;j

          {

                  all[j]=Input(all[j]);

                  sum[j]=count(all[j]);

          }

          //输出

          for(j=0;j

          {

                  Output(all[j],sum[j]);

          }

          return 0;

  }


回答2:

int i;
static int j=0;
float average;
#define NUM 5
struct STUD{
char num[12];
char name[20];
float grade[3];
};
void Input(STUD& all) //此处是引用 要不然跳出函数后all 的值不变
{
std::string t;
cout<<"输入学号:";
cin>>all.num;
cin.clear();
std::getline(cin,t);////将当前行从缓存中取出
cout<<"输入姓名:";
cin>>all.name;
cin.clear();
std::getline(cin,t);////将当前行从缓存中取出
cout<<"输入C++成绩:";
cin>>all.grade[0];
cin.clear();
cout<<"输入数学成绩:";
cin>>all.grade[1];
cin.clear();
cout<<"输入英语成绩:";
cin>>all.grade[2];
//cin.clear();

}
float count(STUD all)
{
float sum=0; for(i=0;i<3;i++)
{
sum+=(all.grade[i]);
}
sum=sum/3;
//cout< return sum;
}
void Output(STUD all)
{
cout<<"学号:";
for(i=0;i<12;i++)
{
cout< if(all.num[i]!='\0')
continue;
else break;
}
cout<<'\n'; cout<<"姓名:";
for(i=0;i<20;i++)
{
cout< if(all.name[i]!='\0')
continue;
else break;
}
//float average = all.grade[0]+all.grade[1]+all.grade[2];
//average/=3;
cout<<'\n';
cout<<"C++成绩:";
cout< cout<<'\n';
cout<<"数学成绩:";
cout< cout<<'\n';
cout<<"英语成绩:";
cout< cout<<'\n';
cout<<"平均成绩:";
cout< cout<<'\n';
}
int _tmain(int argc, _TCHAR* argv[])
{
STUD all[NUM];
for(j=0;j {
Input(all[j]);
average = count(all[j]);
Output(all[j]);
}
return 0;
}