你的录入逻辑没有问题啊,如果录入完成,剩下的你说的统计相关信息,就是对录入信息做遍历和处理啊。
比如 你的input函数实现了一个对全局结构体数组 Tc的赋值操作,也就是信息录入动作。
接下来,如果你要统计男女的人数,可以专门写个函数做遍历。
具体就是int x=0,y=0; for(int i=0; i<renshu; i++) { if( strcmp(Tc[i].Sex,"男") ==0) x++; else y++;}
我按照你的逻辑简单实现了一下你可以梳理和优化: 我是在vs2019上测试的:
#include <stdio.h>
#include <string.h>
struct Teather {
int num; //编号
char name[20]; //姓名 字符串
char sex[3]; // 性别 字符串
char age[9]; //出生年月 如19911101 八位 字符串
char nation[5]; //民族
char politics[5]; //政治面貌 字符串
char phone[12]; //电话 11位
char work[20];
char education[20];
};
int renshu = 0;
#define NUM 20
struct Teather Tc[NUM];
void input() //录入信息
{
int i;
printf("请输入需要录入教师的人数(20人以内):");
scanf_s("%d", &renshu);
for (i = 0; i < renshu; i++)
{
printf("----------------------------------------------------------------------------------------------------\n");
printf("请输入教师 %d的 教师编号 姓名 性别 出生年月 民族 政治面貌 电话 职称 学历:(空格分隔)\n", i + 1);
scanf_s("%d",&Tc[i].num);
scanf_s("%s", Tc[i].name, 20);
scanf_s("%s", Tc[i].sex, 3);
scanf_s("%s", Tc[i].age, 9);
scanf_s("%s", Tc[i].nation, 5);
scanf_s("%s", Tc[i].politics, 5);
scanf_s("%s", Tc[i].phone, 12);
scanf_s("%s", Tc[i].work, 20);
scanf_s("%s", Tc[i].education, 20);
//Tc[i].num = i;
//scanf_s("%s%s%s%s%s%s%s%s%s%s", Tc[i].name,20, Tc[i].sex,3, Tc[i].Age, Tc[i].nation, Tc[i].zhengzhimianmao, Tc[i].dianhua, Tc[i].zhicheng, Tc[i].education);
}
printf("\n--------------------------------◇输入结束,按回车返回主菜单◇--------------------------------------\n");
}
void print()
{
printf("录入信息是:\n");
for (int i = 0; i < renshu; i++)
{
printf("%d ", Tc[i].num);
printf("%s ", Tc[i].name);
printf("%s ", Tc[i].sex);
printf("%s ", Tc[i].age);
printf("%s ", Tc[i].nation);
printf("%s ", Tc[i].politics);
printf("%s ", Tc[i].phone);
printf("%s ", Tc[i].work);
printf("%s ", Tc[i].education);
printf("\n");
}
}
int search(int flag)
{
int man_res = 0;
int woman_res = 0;
for (int i = 0; i < renshu; i++)
{
if (strcmp(Tc[i].sex, "男") == 0)
{
man_res++;
}
else
{
woman_res++;
}
}
if (flag == 0)
{
return man_res;
}
return woman_res;
}
int main(void)
{
input();
printf("男生个数为 :%d \n", search(0));
printf("女生个数为 :%d \n", search(1));
print();
return 0;
}