|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#define N 10
extern int i,xuehao1;
struct fen
{
float gaoshu1;
float cyuyan1;
float tiyu1;
float yingyu1;
float zhongguogemingshi1;
};
struct student
{
char name[10];
int xuehao;
float gaoshu;
float cyuyan ;
float tiyu ;
float yingyu;
float zhongguogemingshi ;
float average ;
struct fen xuefen;
}stu[N];
void found( int n);
float ave(float stu[1].gaoshu,float stu[1].cyuyan,float stu[1].tiyu,float stu[i].yingyu,float stu[i].zhongguogemingshi);
main()
{
float zongxuefen[N];
float average[N];
int xuehao1;
int j,ave,a=0,b=0,c=0,d=0;
float t;
char degree;
printf("请依次分别输入学生的姓名,高等数学,c语言程序设计,体育,英语,中国革命史成绩");
for(i=0;i<N;i++)
{
scanf("%c",&stu[i].name);
scanf("%f",&stu[i].gaoshu);
scanf("%f",&stu[i].cyuyan);
scanf("%f",&stu[i].tiyu);
scanf("%f",&stu[i].yingyu);
scanf("%f",&stu[i].zhongguogemingshi);
}
for(i=0;i<N;i++)
{
if(stu[i].gaoshu>=60)
stu[i].xuefen.gaoshu1=5;
else
stu[i].xuefen.gaoshu1=0;
if(stu[i].cyuyan>=60)
stu[i].xuefen.cyuyan1=3.5;
else
stu[i].xuefen.cyuyan1=0;
if(stu[i].tiyu>=60)
stu[i].xuefen.tiyu1=2;
else
stu[i].xuefen.tiyu1=0;
if(stu[i].yingyu>=60)
stu[i].xuefen.yingyu1=3;
else
stu[i].xuefen.yingyu1=0;
if(stu[i].zhongguogemingshi>=60)
stu[i].xuefen.zhongguogemingshi1=2;
else
stu[i].xuefen.zhongguogemingshi1=0;
average[i]=ave(stu[i].gaoshu, stu[i].cyuyan, stu[i].tiyu, stu[i].yingyu, stu[i].zhongguogemingshi);
zongxuefen[1]=stu[i].xuefen.gaoshu1+stu[i].xuefen.cyuyan1+stu[i].xuefen.tiyu1+stu[i].xuefen.yingyu1+stu[i].xuefen.zhongguogemingshi1;
}
for(i=0;i<N;i++)
{
if(ave<60)
degree='D';
if(60<=ave&&ave<75)
degree='C';
if(75<=ave&&ave<90)
degree='B';
if(90<=ave&&ave<=100)
degree='A';
switch(degree)
{
case 'A':a++;
case 'B':b++;
case 'C':c++;
case 'D':d++;
}
}
printf("在分数段0~60的人有%d个\n",d);
printf("在分数段60~75的人有%d个\n",c);
printf("在分数段75~90的人有%d个\n",b);
printf("在分数段90~100的人有%d个\n",a);
printf("--------------------------------------------------");
printf("请输入要查找的学生的学号");
scanf("%d",&xuehao1);
found(xuehao1);
for(i=0;i<9;++i)
{
for(j=0;j<9-i;++j)
{
if(zongxuefen[j]>zongxuefen[j+1])
{
t=zongxuefen[j];
zongxuefen[j]=zongxuefen[j+1];
zongxuefen[j+1]=t;
}
}
}
for(j=0;j<10;++j)
{
printf("%-5d\n ",zongxuefen[j]);
}
}
float ave(float stu[i].gaoshu,float stu[i].cyuyan,float stu[i].tiyu,float stu[i].yingyu,float stu[i].zhongguogemingshi)
{
float sum;
sum=(stu[i].gaoshu + stu.cyuyan + stu.tiyu + stu[i].yingyu + stu[i].zhongguogemingshi);
return sum/5;
}
void found(int xuehao1)
{
for(i=0;i<N;i++)
{
if((xuehao1-stu[i].xuehao)==0)
printf("名字:%c\n 高数成绩:%f\n c语言成绩:%f\n 体育成绩:%f\n 英语成绩:%f\n 中国革命史:%f\n",stu[i].name,stu[i].gaoshu,stu[i].cyuyan,stu[i].tiyu,stu[i].yingyu,stu[i].zhongguogemingshi);
}
}
我的编译器使用scanf函数会提示 _CRT_SECURE_NO_WARNINGS 警告,建议我使用新版本的scanf_s函数,原因是这些函数不安全,可能会造成内存泄露等
第一行是宏定义,可以忽略这些警告
|
|