#include<stdio.h>
#include<stdlib.h>
struct student
{ int num;
int math;
int english;
int c;
int sum;
int average;
};
void main()
{struct student s[10];
int i;
void sum( student s[]);
void average(student s[]);
void sort(student s[]);
void print(student s[]);
void search(student s[]);
for(i=0;i<10;i++)
{
printf("请输入%d个学生的信息-------学号------数学成绩------英语成绩-----c语言成绩\n",i+1);scanf("%d,%d,%d,%d",&s[i].num,&s[i].math,&s[i].english,&s[i].c);
}
sum(s);
average(s);
printf怎么读英语sort(s);
search(s);
print(s);
system("pause");//我用的是vs2010编译器,楼主用别的话改下这条
}
void sum( student s[])
{ int i;
for(i=0;i<10;i++)
s[i].sum=s[i].math+s[i].english+s[i].c;
}
void average(student s[])
{
int i;
for(i=0;i<10;i++)
s[i].average=(s[i].math+s[i].english+s[i].c)/3;
}
void sort(student s[])
{
int i,j,k;
struct student temp;
for(i=0;i<10;i++)
{ k=i;
for(j=i+1;j<10;j++)
if(s[k].sum<s[j].sum)
k=j;
if(k!=i)
{temp=s[i];
s[i]=s[k];
s[k]=temp;
}
}
}
void search(student s[])
{int mid,low,high,found;
low=0;
high=9;
found=0;
while(low<=high)
{mid=(high+low)/2;
if(s[mid].average==85){found=1;break;}
else if(85>s[mid].average)
high=mid-1;
else low=mid+1;
}
if(found==1)
printf("平均分为85分的学生序号为%d\n",s[mid].num);
else printf("平均分为85分的学生不存在\n");
}
void print(student s[])
{int i;
printf("学号--数学成绩---英语成绩---c语言课程设计成绩---平均分---总分\n");
for(i=0;i<10;i++)
printf("%-4d%5d%5d%5d%5d%5d\n",s[i].num,s[i].math,s[i].english,s[i].c,s[i].average,s[i].sum);
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论