下面几个问题用C语言编写程序,求大神帮帮忙

2.任意输入一个小班(30人)的所有同学《程序设计技术》科目的期末成绩,要求输出最好的2个成绩。3.任意输入一个小班(30人)的所有同学《程序设计技术》科目的期末成绩,要... 2
.任意输入一个小班(
30
人)的所有同学《程序设计技术》科目的期末成绩,
要求输出最好的
2
个成绩。

3
.任意输入一个小班(
30
人)的所有同学《程序设计技术》科目的期末成绩,
要求输出最高分的同学及其标号(或者学号)

4
.任意输入一个小班(
30
人)的所有同学《程序设计技术》科目的期末成绩,
计算出该科目全班的平均分,要求求得并输出与平均分最近的同学的成绩及其
标号(或者学号)
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)+提问者悬赏70(财富值+成长值)
448150220
推荐于2016-12-05 · 超过30用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:34.3万
展开全部
#include <stdio.h>
#define N 30

struct {
int id;
char name[10];
int sore;
}stu[N],st;

int main()
{
void selectMax_1();
void selectMax_2();
void fun_3();
int i;
puts("C语言作业:");
for(i = 0;i < N;i++){
printf("请输入第%d个学生的id 姓名 成绩:\n",i+1);
scanf("%d %s %d",&stu[i].id,&stu[i].name,&stu[i].sore);
}
selectMax_1();
selectMax_2();
fun_3();
return 0;
}

void selectMax_1(){
int i, max_sore = 0;
for(i = 0;i < N;i++){
if(stu[i].sore > max_sore)
max_sore = stu[i].sore;
}
printf("最高的成绩是: %d\n",max_sore);
}

void selectMax_2(){
int i;
st.sore = 0;
for(i = 0;i < N;i++){
if(stu[i].sore > st.sore)
st = stu[i];
}
printf("最高成绩的学生信息: id = %d name = %s sore = %d \n",st.id,st.name,st.sore);

}

void fun_3(){
int i,count;
float ave,differ = 101 ;
for(i = 0;i < N;i++){
count += stu[i].sore;
}
ave = (float)count / (float)N;
for(i = 0;i < N;i++){
if(differ > (stu[i].sore - ave)){
differ = stu[i].sore - ave;
st = stu[i];
}
}
printf("最接近平均分的学生信息: id = %d name = %s sore = %d \n",st.id,st.name,st.sore);

}

写完了,有不懂的地方或是要改的地方可以回复,毕竟有太多的算法可以实现。
追问
这是三个小题,可以分开写么。
追答
3个方法对应3个小问题
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式