用C语言实现为了生活联系的方便,某班级需要建立一个同学通讯录。通讯录中包含:姓名、性别、出 生日期、手机号这几项。现需要根据通讯录统计2000年后(包括2000年)出生的男生人数, 请编程实现这个通讯并完成人数统计要求。
时间: 2024-03-03 10:47:11 浏览: 77
好的,我来编写这个通讯录统计的C语言程序。
首先,我们需要定义一个结构体来存储每个同学的信息,包括姓名、性别、出生日期和手机号:
```c
struct student {
char name[20];
char gender;
int birth_year;
int birth_month;
int birth_day;
char phone[11];
};
```
接下来,我们定义一个数组来存储所有同学的信息:
```c
struct student classmates[100];
```
为了方便起见,我们假设班级中最多有100个同学,实际情况下可以根据需要调整数组大小。
然后,我们需要编写一个函数来统计2000年后出生的男生人数:
```c
int count_male_students(struct student *classmates, int n) {
int count = 0;
for (int i = 0; i < n; i++) {
if (classmates[i].gender == 'M' && classmates[i].birth_year >= 2000) {
count++;
}
}
return count;
}
```
这个函数接受一个指向同学数组的指针和数组的大小,遍历数组中的每个同学,如果是男生且出生年份在2000年及以后,就将计数器加1。最后返回计数器的值。
最后,我们在主函数中读取所有同学的信息,调用统计函数,并输出结果:
```c
int main() {
int n;
// 读入同学信息
printf("请输入同学总人数:");
scanf("%d", &n);
printf("请输入每个同学的信息(姓名 性别 出生日期 手机号):\n");
for (int i = 0; i < n; i++) {
scanf("%s %c %d/%d/%d %s", classmates[i].name, &classmates[i].gender, &classmates[i].birth_year, &classmates[i].birth_month, &classmates[i].birth_day, classmates[i].phone);
}
// 统计2000年后出生的男生人数
int count = count_male_students(classmates, n);
printf("2000年后出生的男生人数为:%d\n", count);
return 0;
}
```
以上就是完整的程序代码,你可以复制粘贴到你的C语言编译器中运行。
阅读全文