用c语言写一串代码,要求如下:训练 为了生活联系的方便,某班级需要建立一个同学通讯录。通讯录中包含:姓名、性别、出生日期、 手机号这几项。现需要根据通讯录统计2000年后(包括2000年)出生的男生人数,请编程创建这个通讯并完成符合条件的人数统计要求。
时间: 2024-02-16 16:04:55 浏览: 77
以下是一个用C语言实现的通讯录程序,可以统计2000年后出生的男生人数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_CONTACTS 1000
struct Contact {
char name[50];
char gender;
char birthday[20];
char phone[20];
};
int main() {
struct Contact contacts[MAX_CONTACTS];
int num_contacts = 0;
int num_males = 0;
// 读取通讯录数据
FILE *fp = fopen("contacts.txt", "r");
if (fp == NULL) {
printf("Failed to open file\n");
return 1;
}
while (fscanf(fp, "%s %c %s %s", contacts[num_contacts].name, &contacts[num_contacts].gender, contacts[num_contacts].birthday, contacts[num_contacts].phone) != EOF) {
if (strstr(contacts[num_contacts].birthday, "200") != NULL && contacts[num_contacts].gender == 'M') {
num_males++;
}
num_contacts++;
}
fclose(fp);
printf("Number of males born after 2000: %d\n", num_males);
return 0;
}
```
该程序首先定义了一个Contact结构体,包含姓名、性别、出生日期和手机号等信息。然后创建了一个包含1000个Contacts结构体的数组,用于存储通讯录数据。接着读取一个名为"contacts.txt"的文本文件,将其中的通讯录数据读取到数组中。在读取数据的同时,统计出生日期为2000年及以后且性别为男性的人数。最后输出符合条件的人数统计结果。
需要注意的是,该程序假定通讯录数据已经按照一定格式保存在"contacts.txt"文件中,每行包含一个Contact的信息,各项信息用空格分隔。如果通讯录数据的格式不同,需要相应地修改程序。
阅读全文