当前位置:编程学习 > C/C++ >>

C++程序编写

一个班有 5 名学生,每个学生修了五门课,1)求每个学生的平均成绩,并输出每个学

生的学号,每门课程的成绩及平均值;2)求某门课程的平均分。

要求:

(1)分别编写2 个函数实现以上2 个要求。

(2)第1个函数用数组名作参数。第2个函数用指针用参数,并在函数体内用指针对数

组操作。

 

追问:那个有个小问题就是,你运行后,那些文字出的不是时候,你再修正下吧。比方说列出成绩的时候应该是全部出来那五句话的,而这里是等到下一个信息弄好才出来的......

不过主题上都对啦,呵呵你真行

答案://没事,楼上不帮阁下写,我帮阁下写,代码如下:

 

#include <iostream>
#include <string>
using namespace std;

struct Student
{
 string no;
 string name;
 double score[5];
 double ave;
};

void print(Student stu[],int n)//输出函数
{
 for(int i=0;i<n;i++)
 {
  cout<<"学号:"<<stu[i].no<<",姓名:"<<stu[i].name<<endl;
  for(int u=0;u<5;u++)
  {
   cout<<"第"<<u+1<<"科成绩:"<<stu[i].score[u]<<endl;
  }
  cout<<"平均分:"<<stu[i].ave<<endl;
 }
}

void input(Student *stu,int n)//输入函数
{
 for(int i=0;i<n;i++)
 {
  cout<<"请输入第"<<i+1<<"个学生资料:"<<endl;
  cout<<"学号:";
  cin>>(stu+i)->no;
  cout<<"姓名:";
  cin>>(stu+i)->name;
  for(int u=0;u<5;u++)
  {
   cout<<"第"<<u+1<<"科成绩:";
   cin>>(stu+i)->score[u];
  }
 }
}

void getAverage(Student *stu,int n)//求平均数
{
 int sum=0;
 for(int i=0;i<n;i++)
 {
  for(int u=0;u<5;u++)
  {
   sum+=(stu+i)->score[u];
  }
  (stu+i)->ave=sum/5;
  sum=0;
 }
}

double Average(Student stu[],int index,int n)//求某科平均分
{
 int sum=0;
 for(int i=0;i<n;i++)
 {
  sum+=stu[i].score[index];
 }
 return sum/n;
}

int main()
{
 const int N=5;
 Student stu[N];
 input(stu,N);
 getAverage(stu,N);
 print(stu,N);
 for(int i=0;i<5;i++)
 {
  cout<<"第"<<i+1<<"科的平均分:"<<Average(stu,i,N)<<endl;
 }
}

你不觉得编写这个程序10分很少吗?

做出来了~~

#include <iostream>
#include <iomanip>
using namespace std;
typedef struct STU//定义一个学生结构
{
 char xh[10];//学号
 double score[5];//五门课成绩
}STU;
int getavg(STU stu[])//求每个学生的平均成绩,并输出每个学生的学号,每门课程的成绩及平均值
{
 int i,j;
 double aver[5]={0.0};
 for(i=0;i<5;i++)
 {
  for(j=0;j<5;j++)
  {
   aver[i]=aver[i]+stu[i].score[j];//同一个学生的所有成绩累加
  }
  aver[i]=aver[i]/5;
 }
 cout<<"      学号   语文     数学     英语    物理   化学   平均分"<<endl;
 for(i=0;i<5;i++)
 {
  cout<<setw(8)<<stu[i].xh<<setw(8)<<stu[i].score[0]<<setw(8)<<stu[i].score[1]<<setw(8)<<stu[i].score[2];
  cout<<setw(8)<<stu[i].score[3]<<setw(8)<<stu[i].score[4]<<setw(8)<<aver[i]<<endl;
 }
 return 0;
}
int curavg(STU *stu)
{
 int i,j;
 double aver[5]={0.0};
 for(i=0;i<5;i++)
 {
  for(j=0;j<5;j++)
  {
     aver[j]=aver[j]+stu[i].score[j];
  }
 }
 for(j=0;j<5;j++)
 {
  aver[j]=aver[j]/5;
 }
 cout<<"     语文     数学     英语    物理   化学  "<<endl;
 for(j=0;j<5;j++)
 {
  cout<<setw(8)<<aver[0]<<setw(8)<<aver[1]<<setw(8)<<aver[2]<<setw(8)<<aver[3];
  cout<<setw(8)<<aver[4]<<endl;
 }
 return 0;
}
int main()
{
 STU stu[5];//5名学生
 int i;
 cout<<"\t\t\t\t学生信息的录入\t"<<endl;
 for(i=0;i<5;i++)
 {
  cout<<"\n请输入第"<<i+1<<"个学生的学号:";
  cin>>stu[i].xh;
  cout<<"请输入第"<<i+1<<"个学生的语文成绩:";
  cin>>stu[i].score[0];
  cout<<"请输入第"<<i+1<<"个学生的数学成绩:";
  cin>>stu[i].score[1];
  cout<<"请输入第"<<i+1<<"个学生的英语成绩:";
  cin>>stu[i].score[2];
  cout<<"请输入第"<<i+1<<"个学生的物理成绩:";
  cin>>stu[i].score[3];
  cout<<"请输入第"<<i+1<<"个学生的化学成绩:";
  cin>>stu[i].score[4];
  cout<<endl;
 }
 cout<<"\n每个学生的平均成绩信息如下:"<<endl;
 getavg(stu);
 cout<<"\n每门课程的平均分信息如下:"<<endl;
 curavg(stu);
 return 0;
}

你运行看看符合要求吗?

上一个:求教C++问题
下一个:C++是什么 ?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,