下面进入正题:
#include <stdio.h>
struct student
{int num;
char name[30];
char sex;
float Chinese;
float Math;
float English;
}stu[4]={{2007480001,"hehe",'F',77.5,120.5,14.5},
{2007480002,"haha",'M',13.5,10.5,1190.5},
{2007480003,"dede",'F',10.5,90.5,119.5},{}};
void main()
{
printf("********全班最好成绩*********\n\n");
if ((stu[1].Chinese+stu[1].Math+stu[1].English)>(stu[2].Chinese+stu[2].Math+stu[2].English))
stu[4]=stu[1];
else
stu[4]=stu[2];
if ((stu[0].Chinese+stu[0].Math+stu[0].English)>(stu[4].Chinese+stu[4].Math+stu[4].English))
printf("第一名是 %s",stu[0].name);
else
printf("第一名是 %s\n\n",stu[4].name);
printf("********及格情况*********\n\n");
int j,c=0,m=0,e=0;
for(int i=0;i<3;i++)
{if(stu[i].Chinese<60)
{++c;}
if(stu[i].Math<60)
{++m;}
if(stu[i].English<60)
{++e;}
}
printf("语文不及格的人数有%d个。\n数学不及格的有%d个。\n英语不及格的有%d个.\n\n",c,m,e);
float k,q,p;
k=c/3.0f*100;
q=m/3.0f*100;
p=e/3.0f*100;
printf("\n语文不及格的人数占%f%%。\n数学不及格的占%f%%。\n英语不及格的占%f%%.\n\n",k,q,p);
printf("********个人成绩数据*********\n\n");
printf("姓名:%s 总分:%f 平均分:%f\n",stu[0].name,(stu[0].Chinese+stu[0].Math+stu[0].English),(stu[0].Chinese+stu[0].Math+stu[0].English)/3.0);
printf("姓名:%s 总分:%f 平均分:%f\n",stu[1].name,(stu[1].Chinese+stu[1].Math+stu[1].English),(stu[1].Chinese+stu[1].Math+stu[1].English)/3.0);
printf("姓名:%s 总分:%f 平均分:%f\n",stu[2].name,(stu[2].Chinese+stu[2].Math+stu[2].English),(stu[2].Chinese+stu[2].Math+stu[2].English)/3.0);
}
如果你想更复杂一点,可以把初定义去了,手写输入数据。
只要用链表插入数据就可以,我这里就省了。
总之可以做的复杂一点。挺实用的。
本文转自施杨博客园博客,原文链接:http://www.cnblogs.com/shiyangxt/archive/2008/06/19/1226161.html,如需转载请自行联系原作者