求高手赐教,为什么C语言程序编译时没问题,而在运行时显示文件已停止工作,要关闭该程序啊???急急

 我来答
kaixingui2012
推荐于2016-01-02 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6408万
展开全部
int a,b;
scanf("%d%d",&a,&b);//参数必须是指针(地址)才可以。
scanf()函数要求参数必须是指针类型,即将地址传输到其内,才可以让a , b变量中获取到数据。
如果你学过指针,你就会理解了。

C语言中函数的调用中,参数传递,只能传递数值。如果只是将数值传递过去(接收者是形参),在子函数中变化,形参的变化,不会影响到实参数据的内容。
C中,每定义一个变量,系统都会在内存中给其分配一个空间用来存储数据。而这个空间的编号就是这个变量的地址。当我们将这个地址传递到子函数中,子函数在操作数据时,就会改变这个地址中的数据,这样,实参的数据是会发生变化。
而你程序中,传递的是a b本身的值(可能是0,可能是1,可能是任意的数),scanf()将这两个值当作地址去操作,因此会产生系统错误,导致程序运行停止。
867773467
2012-03-10 · TA获得超过180个赞
知道小有建树答主
回答量:243
采纳率:0%
帮助的人:148万
展开全部
楼主,你的scanf语句对变量赋值时没有写& ,这是常见错误!
追问
嗯  谢谢哦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友28b4182
2012-03-10 · TA获得超过7222个赞
知道大有可为答主
回答量:4847
采纳率:100%
帮助的人:1840万
展开全部
是运行错误,原因可能是数组越界,递归没有结束条件。等等
更多追问追答
追问
很简单的一个程序都运行不了,那我该怎么办呢?
追答
是什么程序啊,发出来看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ree9270
2012-03-10 · 超过23用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:74.8万
展开全部
你的程序也没有输出什么的。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式