为了生活联系的方便,某班级需要建立一个同学通讯录。通讯录中包含:姓名、性别、出生日期、手机号这几项。现需要根据通讯录统计2000年后(包括2000年)出生你的男生人数,请用c语言编程实现这个通讯并完成人数统计要求。
时间: 2024-02-18 09:03:18 浏览: 91
好的,我可以为您提供一个简单的C语言程序来实现这个功能。请参考下面的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENTS 1000 // 学生最大数量
#define YEAR_2000 946656000 // 2000年1月1日的时间戳
// 学生结构体
typedef struct {
char name[20]; // 姓名
char gender; // 性别
long birthday; // 出生日期的时间戳
char phone[12]; // 手机号
} Student;
int main() {
// 初始化学生数组
Student students[MAX_STUDENTS];
int num_students = 0;
// 读取学生信息
FILE *fp = fopen("students.txt", "r");
if (fp == NULL) {
printf("无法打开文件\n");
return 1;
}
char line[100];
while (fgets(line, sizeof(line), fp) != NULL) {
char *name = strtok(line, ",");
char *gender = strtok(NULL, ",");
char *birthday_str = strtok(NULL, ",");
char *phone = strtok(NULL, ",");
Student student;
strcpy(student.name, name);
student.gender = gender[0];
student.birthday = atol(birthday_str);
strcpy(student.phone, phone);
students[num_students++] = student;
}
fclose(fp);
// 统计2000年后出生的男生人数
int num_male = 0;
for (int i = 0; i < num_students; i++) {
if (students[i].gender == 'M' && students[i].birthday >= YEAR_2000) {
num_male++;
}
}
printf("2000年后出生的男生人数为:%d\n", num_male);
return 0;
}
```
这个程序首先会从一个名为"students.txt"的文件中读取学生信息,每行信息包括姓名、性别、出生日期和手机号,用逗号分隔。然后,程序会统计2000年后出生的男生人数,最后输出结果。
请注意,这个程序中使用了时间戳来表示出生日期。时间戳是一个整数,表示从1970年1月1日0时0分0秒开始到某个时间点的秒数。在C语言中,可以使用函数time()来获取当前时间的时间戳。如果您的学生信息中出生日期的表示方式不同,您需要根据实际情况进行修改。
阅读全文