请编程设计下面的学生基本信息表类型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-09 12:05:59 浏览: 56
设计一个学生类Student(学生学号、姓名、数学、英语、计算机成绩;)
5星 · 资源好评率100%
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENT_NUM 6
#define DATE_LEN 11
#define NAME_LEN 20
// 学生基本信息结构体
typedef struct {
char id[10]; // 学号
char name[NAME_LEN]; // 姓名
char gender; // 性别
char birthdate[DATE_LEN]; // 出生日期
int score1; // 第一门成绩
int score2; // 第二门成绩
int score3; // 第三门成绩
int total_score; // 总成绩
} Student;
int main() {
Student a[MAX_STUDENT_NUM]; // 学生数组
char d1[DATE_LEN], d2[DATE_LEN]; // 查询日期
int i, j, sum = 0;
// 输入学生信息
for (i = 0; i < MAX_STUDENT_NUM; i++) {
scanf("%s %s %c %s %d %d %d", a[i].id, a[i].name, &a[i].gender, a[i].birthdate, &a[i].score1, &a[i].score2, &a[i].score3);
a[i].total_score = a[i].score1 + a[i].score2 + a[i].score3;
sum += a[i].total_score;
}
// 输入查询日期
scanf("%s %s", d1, d2);
// 查找符合条件的学生并输出
for (i = 0; i < MAX_STUDENT_NUM; i++) {
if (strcmp(a[i].birthdate, d1) >= 0 && strcmp(a[i].birthdate, d2) <= 0) { // 出生日期在查询日期之间
printf("%s %s %c %s %d %d %d %d\n", a[i].id, a[i].name, a[i].gender, a[i].birthdate, a[i].score1, a[i].score2, a[i].score3, a[i].total_score);
}
}
return 0;
}
```
阅读全文