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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
初学者使用vs2013编译c语言程序遇到问题及解决办法。
初学者用vs2013编译c语言程序遇到问题以及解决办法。
C语言代码,求高手解答,为什么没有错误,但是结果不对
#include #include char *cmonth(int month) { char str_month[]={ "Illegal Month" "January" "February" "March" "April" "May" "June" "July" "August" "September" "October" "November"
程序不报错但无法运行
今天早上下午一直在处理这个问题——程序不报错但是无法运行。将主要的业务代码注释后,能显示第一个界面,但取消注释后运行会弹出“停止运行”的框,令我疑惑的是前两个星期都没有任何问题,完全能够运行,请各位指点。 package com.example.store; import android.support.v7.app.ActionBarActivity; import com
C语言里程序编译无误但运行会弹出程序已停止运行是为什么?
C语言里程序编译无误但运行会弹出程序已停止运行是为什么?原文链接(https://zhidao.baidu.com/question/1178139670043658699.html) 摘要 1. 内存溢出 内存溢出(out of memory)通俗理解就是内存不够,程序所需要的内存远远超出了主机内安装的内存所承受大小,就叫内存溢出。系统会提示内存溢出,有时候会自动关闭软
下面的代码中编译器会报一个错误,你知道是哪个语句错了吗?
下面的代码中编译器会报一个错误,你知道是哪个语句错了吗? typedef char * pStr; char string[4] = "abc"; const char *p1 = string; const pStr p2 = string; p1++; p2++;   答案与分析:    是p2++出错了。这个问题再一次提醒我们:typedef和#define不同,它不是简单的文本替换。上述代
C++中由于浅拷贝造成的程序中断错误的简例(编译通过,运行出现中断)
问题:C++中由于浅拷贝造成的程序中断错误的简例(编译通过,运行出现中断)本程序通过VC++ 6.0编译与测试,程序设计为在指针中存入(0—4),未进行拷贝时,程序不会报错,正常输入,进行拷贝操作后,由于浅拷贝造成程序二次删除,进而报错,具体代码如下://一个分别对两个指针进行赋值的程序,程序正常运行 #include &amp;lt;iostream&amp;gt; using namespace std; c...
安卓开发遇到项目无法运行提示有错误有红叉但是找不到错误定位的情况
在编译别人的源代码项目运行时,报出"Your project contains errors,please fix them before running your application."的提示框 在项目图标会有个小红叉,但项目代码中却没有任何错误。 以前这种情况一般处理方式有: 方法1.用project->clean; 方法2.删除项目,重新载入项目。 这次用了都不行,查看
我的vc++6.0编译的时候没有问题,运行的时候为什么总是报告一个错误?
# include void main () {   printf("h"); } 编译是没有错误,运行的时候总是报告这个错误--------------Configuration: oop - Win32 Debug-------------------- Linking... LINK : fatal error LNK1104: cannot open file "D
C++编译错误与运行时错误
这两天在准备实习,做笔试题时,有的选择题会让选择编译错误还是运行错误,这里把自己找的最简单的理解记一下。 (1) 编译错误:就是编译器无法进行继续编译的错误,最基本的就是语法错误了,比如语句后面少了;或者 } 不匹配之类的,选择题一般是这样。编译错误可以由编译器检查出来。 (2) 运行时错误:分为两类:1. 由于考虑不周或者输入错误导致程序异常,比如数组越界访问,除数为0,堆栈溢出等。 2,由
C语言出错中英文对照表
能帮助你在c语言运行出错是理解哪里出错,能更快的通过编译