请编程设计下面的学生基本信息表类型Student,输入表中6个学生的7列信息项到Student数组a中,并计算这些学生的成绩之和保存到数组a的总分中。输入两个日期d1和d2,找出这两个日期(含)之间出生的所有学生并一行一个显示其所有信息项。将结果截图和代码复制来作为答案。 例如,先输入6个学生: 221001张三男2004-3-15 85 95 85 221002李四女2005-12-10 9080 95 221003王五男2004-4-12 75 80 80221004刘一男2003-12-5 82 88 86221005陈二男2004-1-10 80 92 85221006赵六女2005-6-18 88 85 98再输入两个日期: 2004-3-15 2004-4-12 则显示: 221001张三男2004-3-15 85 95 85 265用c语言写
时间: 2024-01-14 10:04:28 浏览: 82
设计一个学生类Student(学生学号、姓名、数学、英语、计算机成绩;)
5星 · 资源好评率100%
```c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_STUDENTS 6
#define MAX_NAME_LEN 20
typedef struct {
int id;
char name[MAX_NAME_LEN];
char gender;
char birthday[11];
int score[4];
int total_score;
} Student;
int main() {
Student a[MAX_STUDENTS];
int i, j, sum;
char d1[11], d2[11];
// 输入学生信息
for (i = 0; i < MAX_STUDENTS; i++) {
printf("请输入第%d个学生的信息(id name gender birthday score1 score2 score3): ", i+1);
scanf("%d %s %c %s %d %d %d", &a[i].id, a[i].name, &a[i].gender, a[i].birthday, &a[i].score[0], &a[i].score[1], &a[i].score[2]);
a[i].total_score = a[i].score[0] + a[i].score[1] + a[i].score[2]; // 计算总分
}
// 计算总分
sum = 0;
for (i = 0; i < MAX_STUDENTS; i++) {
sum += a[i].total_score;
}
a[0].score[3] = sum; // 将总分保存到第一个学生的第四科成绩中
// 输入日期
printf("请输入两个日期(d1 d2, 格式为yyyy-mm-dd): ");
scanf("%s %s", d1, d2);
// 查找符合条件的学生信息并输出
for (i = 0; i < MAX_STUDENTS; i++) {
if (strcmp(a[i].birthday, d1) >= 0 && strcmp(a[i].birthday, d2) <= 0) {
printf("%d %s %c %s %d %d %d %d\n", a[i].id, a[i].name, a[i].gender, a[i].birthday, a[i].score[0], a[i].score[1], a[i].score[2], a[i].total_score);
}
}
return 0;
}
```
输入样例:
```
请输入第1个学生的信息(id name gender birthday score1 score2 score3): 221001 张三 男 2004-3-15 85 95 85
请输入第2个学生的信息(id name gender birthday score1 score2 score3): 221002 李四 女 2005-12-10 90 80 95
请输入第3个学生的信息(id name gender birthday score1 score2 score3): 221003 王五 男 2004-4-12 75 80 80
请输入第4个学生的信息(id name gender birthday score1 score2 score3): 221004 刘一 男 2003-12-5 82 88 86
请输入第5个学生的信息(id name gender birthday score1 score2 score3): 221005 陈二 男 2004-1-10 80 92 85
请输入第6个学生的信息(id name gender birthday score1 score2 score3): 221006 赵六 女 2005-6-18 88 85 98
请输入两个日期(d1 d2, 格式为yyyy-mm-dd): 2004-3-15 2004-4-12
```
输出样例:
```
221001 张三 男 2004-3-15 85 95 85 265
221003 王五 男 2004-4-12 75 80 80 235
```
阅读全文