2 wsunny111 WSunny111 于 2017.01.08 15:30 提问

C语言新手 编译器没有报错但运行出错 请问程序是哪里出了问题 感谢

编写某公司的员工管理系统,员工最多为50人,员工信息以结构体数组形式存储,请完成员工档案的输入,并统计所有性别为M的记录的个数。
#include
int main()
{
struct stuff{
int id;
char name[15];
char sex;
int salary;
};
struct stuff stu[50];
int i,n,id,m,sum=0;
do{
printf("id:\n");
scanf("%d",&id);
for(i=0;i<n;i++)
{
if(id==stu[i].id){
printf("This id is exits");
return;}
}
stu[i].id=id;
printf("name:\n");
gets(stu[i].name);
printf("sex:\n");
scanf("%c",&stu[i].sex);
if(stu[i].sex=='M') sum++;
printf("salary:\n");
scanf("%d",&stu[i].salary);
n++;
printf("continues to add?");
scanf("%c",&m);
}while(m!='N');
printf("%d",n);
}

3个回答

qq_36829186
qq_36829186   2017.01.09 10:27
已采纳

语法没有错误,运行失败,一般是数据泄露,你的n没有给初始

Cool2Feel
Cool2Feel   2017.01.08 15:41

stu[i].id=id;
有问题的,i没有改变?

sum_TW
sum_TW   2017.01.08 18:55

你没给n初始化啊,for循环那里n没有值,直接小于50就好了啊。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!