#include<stdio.h>
#include<string.h>
#define N 100
struct people
{
char name[20];
char sex[2];
int age;
};
void calculate(struct people *s) //统计0-29岁、30-59岁、60以上的男、女人数
{
int m1=0,w1=0,m2=0,w2=0,m3=0,w3=0; //m1为0-29岁的男生人数,w2为同阶段女生人数;m2w2 m3w3以此类推
for(int i=0;i<N;i++)
{
if(s[i].age>=0) //输入的年龄必须大于等于0
{
if(s[i].age>=0&&s[i].age<=29) //第一阶段
{
if(!strcmp(s[i].sex,"男")) m1++; //判断性别是否是男
else w1++;
}
else if(s[i].age>=30&&s[i].age<=59) //第二阶段
{
if(!strcmp(s[i].sex,"男")) m2++;
else w2++;
}
else //第三阶段
{
if(!strcmp(s[i].sex,"男")) m3++;
else w3++;
}
}
else
{
printf("Age Input Error!");
}
}
printf("0-29岁:\n男生人数:%d\n女生人数:%d\n",m1,w1);
printf("30-59岁:\n男生人数:%d\n女生人数:%d\n",m2,w2);
printf("60岁以上(包含60岁):\n男生人数:%d\n女生人数:%d\n",m3,w3);
}
void main()
{
struct people p[N];
for(int i=0;i<N;i++)
{
printf("姓名:");
scanf("%s",&p[i].name);
printf("性别:");
scanf("%s",&p[i].sex);
printf("年龄:");
scanf("%d",&p[i].age);
}
calculate(p);
}
代码有看不懂的或检查出有错误的地方可在评论区留言,代码中很多细节方面如输入错误等都未判断,望理解。