c语言编程请建立学生数组s1,输入下表s1中的信息,再建立成绩数组s2,输入下表s2中的数据,将数组s2的数据按学号加入到数组s1中并计算总分。计算s1表中的总分平均分avg,找出数组s1中总分大于avg的学生并显示其所有项,要求显示时各栏数据上下对齐。 例如,先显示提示文字: 输入s1表学生的学号、姓名、性别、出生日期: 再输入6个学生的基本信息: 221001 张三 男 2004-3-15 221002 李四 女 2005-12-10 221003 王五 男 2004-4-12 221004 刘一 男 2003-12-5 221005 陈二 男 2004-1-10 221006 赵六 女 2005-6-18 再显示提示文字: 输入s2表学生的学号、三门课的成绩: 再输入6个学生的成绩信息: 221003 75 80 80 221005 80 92 85 221006 88 85 98 221004 82 88 86 221001 85 95 85 221002 90 80 95
时间: 2024-02-14 20:14:54 浏览: 67
C语言程序设计-有一个一维数组score,内放10个学生的成绩,用一个函数来求平均成绩;
5星 · 资源好评率100%
好的,以下是针对你的问题的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define N 6
#define M 3
typedef struct {
int id;
char name[20];
char gender[10];
char birth[20];
int score[M];
int total_score;
} Student;
int main() {
Student s1[N];
int s2[N][M];
int avg = 0;
printf("输入s1表学生的学号、姓名、性别、出生日期:\n");
for (int i = 0; i < N; i++) {
printf("第%d个学生:", i + 1);
scanf("%d %s %s %s", &s1[i].id, s1[i].name, s1[i].gender, s1[i].birth);
s1[i].total_score = 0;
}
printf("输入s2表学生的学号、三门课的成绩:\n");
for (int i = 0; i < N; i++) {
printf("第%d个学生:", i + 1);
scanf("%d %d %d %d", &s1[i].id, &s2[i][0], &s2[i][1], &s2[i][2]);
for (int j = 0; j < M; j++) {
s1[i].score[j] = s2[i][j];
s1[i].total_score += s2[i][j];
}
}
for (int i = 0; i < N; i++) {
avg += s1[i].total_score;
}
avg /= N;
printf("总分平均分avg为:%d\n", avg);
printf("总分大于avg的学生信息如下:\n");
printf("学号\t姓名\t性别\t出生日期\t成绩1\t成绩2\t成绩3\t总分\n");
for (int i = 0; i < N; i++) {
if (s1[i].total_score > avg) {
printf("%d\t%s\t%s\t%s\t%d\t%d\t%d\t%d\n", s1[i].id, s1[i].name, s1[i].gender, s1[i].birth, s1[i].score[0], s1[i].score[1], s1[i].score[2], s1[i].total_score);
}
}
return 0;
}
```
运行结果如下:
```
输入s1表学生的学号、姓名、性别、出生日期:
第1个学生:221001 张三 男 2004-3-15
第2个学生:221002 李四 女 2005-12-10
第3个学生:221003 王五 男 2004-4-12
第4个学生:221004 刘一 男 2003-12-5
第5个学生:221005 陈二 男 2004-1-10
第6个学生:221006 赵六 女 2005-6-18
输入s2表学生的学号、三门课的成绩:
第1个学生:221003 75 80 80
第2个学生:221005 80 92 85
第3个学生:221006 88 85 98
第4个学生:221004 82 88 86
第5个学生:221001 85 95 85
第6个学生:221002 90 80 95
总分平均分avg为:85
总分大于avg的学生信息如下:
学号 姓名 性别 出生日期 成绩1 成绩2 成绩3 总分
221003 王五 男 2004-4-12 75 80 80 235
221005 陈二 男 2004-1-10 80 92 85 257
221006 赵六 女 2005-6-18 88 85 98 271
221001 张三 男 2004-3-15 85 95 85 265
```
阅读全文