为了生活联系的方便,某班级需要建立一个同学通讯录。通讯录中包含:姓名、性别、出 生日期、手机号这几项。现需要根据通讯录统计 2000 年后(包括 2000 年)出生的男生人数, 请使用c语言编程实现这个通讯并完成人数统计要求.
时间: 2024-03-03 22:46:49 浏览: 124
好的,我来为您编写代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME_LENGTH 20
#define MAX_PHONE_LENGTH 12
typedef struct {
char name[MAX_NAME_LENGTH];
char gender;
int year;
int month;
int day;
char phone[MAX_PHONE_LENGTH];
} Student;
int main() {
int n;
printf("请输入学生人数:");
scanf("%d", &n);
Student* students = (Student*)malloc(n * sizeof(Student));
// 输入学生信息
for (int i = 0; i < n; i++) {
printf("请输入第%d个学生的信息:\n", i + 1);
printf("姓名:");
scanf("%s", students[i].name);
printf("性别(M/F):");
scanf(" %c", &students[i].gender);
printf("出生日期(YYYY-MM-DD):");
scanf("%d-%d-%d", &students[i].year, &students[i].month, &students[i].day);
printf("手机号:");
scanf("%s", students[i].phone);
}
// 统计2000年后出生的男生人数
int count = 0;
for (int i = 0; i < n; i++) {
if (students[i].year >= 2000 && students[i].gender == 'M') {
count++;
}
}
printf("2000年后出生的男生人数为:%d\n", count);
free(students);
return 0;
}
```
上述代码中,我们首先定义了一个 `Student` 结构体来保存每个学生的信息。在 `main` 函数中,我们通过动态内存分配的方式创建了一个大小为 `n` 的 `Student` 数组来保存所有学生的信息。然后,我们通过循环输入每个学生的信息,并且统计2000年后出生的男生人数。最后,我们释放了动态分配的内存,结束程序。
注意:上述代码中使用了 `scanf` 函数来进行输入,为了避免输入时出现问题,我们需要在格式化字符串中使用空格来忽略输入流中的空格和换行符。
阅读全文