关于结构体的问题,童鞋们帮我分析一下下,奖励分分的噢
程序就是用结构体录入10个同学以内的学号,姓名,三门功课成绩,然后输出平均成绩,输出把成绩最高的同学的录入信息#include"stdio.h"
int main(){
struct xj{
int xh;
char name[10];
struct cj{
int yw;
int sx;
int yy;
}stu_cj; /*再在结构体里定义一个结构体类型cj,并定义一个结构体变量stu_cj用来存放三门功课成绩*/
int zcj;
}; /*定义结构体XJ类型*/
struct xj stu[10]; /*定义结构体变量stu数组,有10个结构体变量*/
int i=0,n,max,k=0;
printf("请输入你要输入几个同学的成绩\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{ printf("请按如下格式输入第%d个同学学号,姓名,语文成绩 数学成绩 英语成绩\n",i+1);
scanf("%d,%s,%d %d %d",&stu[i].xh,&stu[i].name,&stu[i].stu_cj.yw,&stu[i].stu_cj.sx,&stu[i].stu_cj.yy);
};
for(i=0;i<n;i++)
{
stu[i].zcj=stu[i].stu_cj.yw+stu[i].stu_cj.sx+stu[i].stu_cj.yy;
printf("第%d个同学平均成绩:%d",i+1,stu[i].zcj/3);
}; /*计算每个同学的总成绩,然后按平均成绩输出*/
max=stu[0].zcj;
for(i=1;i<n;i++)
{
if(max<stu[i].zcj)
{max=stu[i].zcj;
k=i;}; /*用K记录成绩最高同学的下标,并在下行输出该同学的所有录入信息*/
}
printf("最高成绩学生的学号:%d姓名:%s三门课成绩:%d%d%d平均成绩是:%d\n",stu[k].xh,stu[k].name,stu[i].stu_cj.yw,stu[i].stu_cj.sx,stu[i].stu_cj.yy,stu[k].zcj/3);
}
[ 本帖最后由 a271885843 于 2012-1-15 00:01 编辑 ]