求c语言大神,题目如图

求c语言大神,题目如图只需要第一题谢谢啦,在线等... 求c语言大神,题目如图只需要第一题谢谢啦,在线等 展开
 我来答
kurumi123
2018-05-11 · 超过21用户采纳过TA的回答
知道答主
回答量:72
采纳率:71%
帮助的人:24.6万
展开全部
#include <stdio.h>

#define N 5

void input_stu (struct Stu *stu);
void output_avg (struct Stu *stu);

struct Stu
{
int id;
char name[10];
int sex;
float math;
float eng;
float c;
};

int main()
{
struct Stu stu[N];
input_stu(stu);
output_avg(stu);
return 0;
}

void input_stu(struct Stu *stu)
{
int i = 1;
do
{
printf("请输入第%d个学生的姓名 学号 性别 数学成绩 英语成绩 C语言成绩:", i);
struct Stu *s = stu + i - 1;
scanf("%s %d %d %f %f %f", s->name, &s->id, &s->sex, &s->math, &s->eng, &s->c);
i++;
} while (i <= N);
}

void output_avg(struct Stu *stu)
{
int i = 1;
printf("%-8s%-8s%-8s%-8s%-8s%-8s%-8s","学 号", "姓 名", "性 别", "高 数", "英 语", "C", "平均分");
struct Stu *s = stu + i - 1;
float math_avg = stu->math, eng_avg = stu->eng, c_avg = stu->c;
int b_num = 0, g_num = 0;
putchar(10);
do
{
struct Stu *s = stu + i - 1;
math_avg = ((i - 1)*math_avg + s->math) / i;
eng_avg = ((i - 1) * eng_avg + s->eng) / i;
c_avg = ((i - 1)*c_avg + s->c) / i;
s->sex == 1 ? b_num++ : g_num++;
printf("%-8d%-8s%-8s%-8.1f%-8.1f%-8.1f%-8.1f",
s->id, s->name, s->sex == 1 ? "男" : "女", s->math, s->eng, s->c, (s->math + s->eng + s->c) / 3);
putchar(10);
i++;
} while (i <= N);

printf("%-12s%-12s%-12s%", "数学平均分", "英语平均分", "C平均分");
putchar(10);
printf("%-12.1f%-12.1f%-12.1f", math_avg, eng_avg, c_avg);
putchar(10);
printf("%-12s%-12s", "男生人数", "女生人数");
putchar(10);
printf("%-12d%-12d", b_num, g_num);
putchar(10);
}

代码不懂私聊

更多追问追答
追问
谢谢大佬🙏🏻

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式