题目
输入3个学生的学号、姓名、数学、英语以及c课程成绩并计算每个学生的平均成绩。利用结构体解决问题。
代码
/*输入3个学生的学号、姓名、数学、英语以及c课程成绩并计算每个学生的平均成绩*/
#include<stdio.h>
#include<stdlib.h>
#define N 3
typedef struct stu//建立结构体
{
int num;
char name[20];
float math;
float english;
float C_Language;
float aver;
}STUDENT;
int main()//建立主函数
{
STUDENT stu1,stu2,stu3,stu[3];
STUDENT input(STUDENT s);
float computerAver(STUDENT *st);
stu1=input(stu1);//依次调用输入函数
stu2=input(stu2);
stu3=input(stu3);
(*(stu))=stu1;//将三位学生的信息存在结构体数组stu里
(*(stu+1))=stu2;
(*(stu+2))=stu3;
computerAver(stu);//调用求平均分函数
for(int i=0;i<N;i++)//依次输出
printf("%d号学生%s的数学成绩是:%f,英语成绩是:%f,c语言成绩是:%f,平均成绩为:%f.\n",stu[i].num,stu[i].name,stu[i].math,stu[i].english,stu[i].C_Language,stu[i].aver);
return 0;
}
STUDENT input(STUDENT s)//定义输入信息的函数
{
char in[20];
printf("请输入该学生的学号,姓名,数学成绩,英语成绩,c语言成绩:");
gets(in);
s.num=atoi(in);
gets(s.name);
gets(in);
s.math=atof(in);
gets(in);
s.english=atof(in);
gets(in);
s.C_Language=atof(in);
return s;//返回
}
float computerAver(STUDENT *st)//定义求平均分的函数
{
int i;
float ave;
for(i=0;i<N;i++)
(*(st+i)).aver=((*(st+i)).math+(*(st+i)).english+(*(st+i)).C_Language)/3;
}