- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
#includestdio.h
#includestdlib.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;i10;i++)
{
printf( 请输入 %d 个学生的信息 -------学号 ------数学成绩 ------英语成绩 -----c 语
言成绩 \n,i+1);scanf(%d,%d,%d,%d,s[i].num,s[i].math,s[i].english,s[i].c);
1 / 4
}
sum(s);
average(s);
sort(s);
search(s);
print(s);
system(pause);// 我用的是 vs2010 编译器,楼主用别的话改下这条
}
void sum( student s[])
{ int i; for(i=0;i10;i++) s[i].sum=s[i].math+s[i].english+s[i].c;
}
void average(student s[])
{
int i; for(i=0;i10;i++)
s[i].average=(s[i].math+s[i].english+s[i].c)/3;
}
void sort(student s[])
{
2 / 4
int i,j,k;
struct student temp;
for(i=0;i10;i++)
{ k=i;
for(j=i+1;j10;j++)
if(s[k].sums[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;
3 / 4
if(s[mid].average==85){found=1;break;}
else if(85s[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;i10;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);
}
4 / 4
文档评论(0)