C 语言 请编程设计下面的学生基本信息表类型Student,输入表中6个学生的7列信息项到Student数组a中,并计算这些学生的成绩之和保存到数组a的总分中。输入两个日期d1和d2,找出这两个日期(含)之间出生的所有学生并一行一个显示其所有信息项。将结果截图和代码复制来作为答案。 例如,先输入6个学生: 221001 张三 男 2004-3-15 85 95 85 221002 李四 女 2005-12-10 90 80 95 221003 王五 男 2004-4-12 75 80 80 221004 刘一 男 2003-12-5 82 88 86 221005 陈二 男 2004-1-10 80 92 85 221006 赵六 女 2005-6-18 88 85 98 再输入两个日期: 2004-3-15 2004-4-12 则显示: 221001 张三 男 2004-3-15 85 95 85 265 221003 王五 男 2004-4-12 75 80 80 235
时间: 2024-02-04 14:01:47 浏览: 86
人工智能-项目实践-信息管理系统-学生信息管理系统之链表的使用
以下是 C 语言的代码实现:
```c
#include <stdio.h>
#include <string.h>
typedef struct {
char id[7]; // 学号
char name[20]; // 姓名
char sex[5]; // 性别
char birthday[20]; // 出生日期
int score[3]; // 三门课程成绩
int totalScore; // 总成绩
} Student;
int main() {
Student a[6];
int i, j;
// 输入6个学生的信息
for (i = 0; i < 6; i++) {
printf("请输入第%d个学生的信息:\n", i+1);
scanf("%s %s %s %s %d %d %d", a[i].id, a[i].name, a[i].sex, a[i].birthday, &a[i].score[0], &a[i].score[1], &a[i].score[2]);
a[i].totalScore = a[i].score[0] + a[i].score[1] + a[i].score[2];
}
// 计算总分
int total = 0;
for (i = 0; i < 6; i++) {
total += a[i].totalScore;
}
// 输出所有学生信息和总分
printf("所有学生信息如下:\n");
for (i = 0; i < 6; i++) {
printf("%s %s %s %s %d %d %d %d\n", a[i].id, a[i].name, a[i].sex, a[i].birthday, a[i].score[0], a[i].score[1], a[i].score[2], a[i].totalScore);
}
printf("所有学生总成绩为:%d\n", total);
// 输入两个日期
char d1[20], d2[20];
printf("请输入两个日期(格式为yyyy-mm-dd):\n");
scanf("%s %s", d1, d2);
// 找出符合条件的学生并输出信息
printf("符合条件的学生信息如下:\n");
for (i = 0; i < 6; i++) {
if (strcmp(a[i].birthday, d1) >= 0 && strcmp(a[i].birthday, d2) <= 0) {
printf("%s %s %s %s %d %d %d %d\n", a[i].id, a[i].name, a[i].sex, a[i].birthday, a[i].score[0], a[i].score[1], a[i].score[2], a[i].totalScore);
}
}
return 0;
}
```
注意,上述代码中的日期比较使用了字符串比较函数 `strcmp()`,需要引入头文件 `string.h`。另外,上述代码中的日期和成绩等信息都是以字符串和整数形式保存的,如果要进行更复杂的操作(比如计算年龄和排名等),可能需要使用更复杂的数据类型或者算法。
阅读全文