C语言程序设计实验八结构体
C语言程序设计实验八:结构体
请求用户输入若干个学生的基本情况,其中包括每位学生的学号、姓名和两门课(C语言、数学)的成绩。然后用下面的格式输出学生的成绩列表。
格式描述如下:
学号 姓名 C语言 数学 平均成绩
1 张三 60 70 65
。。。。。
要求如下:
编写3个函数,main函数、input函数、output函数。
不能在main函数中处理用户的输入和输出。
input函数用来输入一个学生的信息,output函数用来输出一个学生的信息。
#include
#define NUM 2
struct student
{
int code;
char name[20];
int Clanguage;
int math;
float average;
};
void input(struct student *p);
void output(struct student *q);
void main()
{ int i; struct student sts[NUM];
for(i=0;i
{
printf("Please input No %d student's code,name,Clanguage and math:\n",i+1);
input(&sts[i]);
}
printf("\n%-8s%-12s%-12s%-8s%-8s\n","code","name","Clanguage","math","average");
printf("----------------------------------------------------------\n" );
for(i=0;i
{
output(&sts[i]);
printf("\n");
}
}
void input(struct student *p)
{
//scanf("%d%s%d%d",&p->code,p->name,&p->Clanguage,&p->math);
scanf("%d",&p->code);
scanf("%s",p->name);
scanf("%d",&p->Clanguage);
scanf("%d",&p->math);
}
void output(struct student *q)
{
q->average=(q->Clanguage+q->math)/2.0;//计算两门课的平均成绩,结果必须为浮点数
printf("%-8d",q->code);
printf("%-12s", q->name);
printf("%-12d",q->Clanguage);
printf("%-8d", q->math );
printf("%-8.2f",q->average);
}