求助大神为什么我用c语言编写的程序运行的时候显示程序停止工作?

作者&投稿:聂蓉 (若有异议请与网页底部的电邮联系)
用c语言编写东西 为什么程序会停止工作?~

  这种情况叫做 runtime error (运行时错误)。

  在 Windows 7 上这样提示:


  在 Windows XP 上这样提示:


  runtime error (运行时错误)就是程序运行到一半,程序就崩溃了。
  比如说:
  ①除以零
  ②数组越界:int a[3]; a[10000000]=10;
  ③指针越界:int * p; p=(int *)malloc(5 * sizeof(int)); *(p+1000000)=10;
  ④使用已经释放的空间:int * p; p=(int *)malloc(5 * sizeof(int));free(p); *p=10;
  ⑤数组开得太大,超出了栈的范围,造成栈溢出:int a[100000000]

int a,b;
scanf("%d%d",&a,&b);//参数必须是指针(地址)才可以。
scanf()函数要求参数必须是指针类型,即将地址传输到其内,才可以让a , b变量中获取到数据。
如果你学过指针,你就会理解了。

C语言中函数的调用中,参数传递,只能传递数值。如果只是将数值传递过去(接收者是形参),在子函数中变化,形参的变化,不会影响到实参数据的内容。
C中,每定义一个变量,系统都会在内存中给其分配一个空间用来存储数据。而这个空间的编号就是这个变量的地址。当我们将这个地址传递到子函数中,子函数在操作数据时,就会改变这个地址中的数据,这样,实参的数据是会发生变化。
而你程序中,传递的是a b本身的值(可能是0,可能是1,可能是任意的数),scanf()将这两个值当作地址去操作,因此会产生系统错误,导致程序运行停止。

scanf语句和printf语句都有错误。
正确的代码如下:
scanf("%lf",&fRadius);
printf("圆的面积为: %lf\n",fResult);
是%lf,而不是%If,scanf语句中,,&fRadius在""后面,而不是在""里面。

有错误无所谓,但是你要知道是什么情况下发生的错误。你的程序编译通过了,所以语法没有问题,然后在你输入一个变量之后停止工作了,所以要么是变量赋值失败,要么是后续代码操作有误,所以在scanf的位置看代码,就会发现你的双引号放错位置了,改成:

scanf("%lf", &fRadius);

即可。不懂可以追问

(最后的printf里面的“%lf”的l是小写的哦)




求助大神为什么我用c语言编写的程序运行的时候显示程序停止工作?_百度...
是%lf,而不是%If,scanf语句中,,&fRadius在""后面,而不是在""里面。

求c语言大神帮助,为什么我的c语言还要在输入一个数才可以的出答案呢...
两个if条件不应该同时成立,但经过第一个if交换顺序后,第二个就有可能成立。最好第二个if前加else。另外min和max的初始值最好再改成最大的int和最小的负int。

请问数学大神第6题为什么选C?
注意,它们商的极限,因为sin(1\/x)有界,而x是无穷小,所以xsin(1\/x)是无穷小,从而极限为零,所以它是x的高阶无穷小。

大神帮忙我用c语言编的计算器程序,这个为什么输入5+6会=-2
数据类型选择不合适。选择合适的数据类型,甚至为了增加精度可以自定义数据类型和运算。

c语言,求大神,答案是a我算的是c,为什么
w<x ? w : z < y ? z : x根据符号优先级,是按照如下运算的:(w<x) ? w : ((z < y) ? z : x)因为:w<x为false,所以输出结果应该是: ((z < y) ? z : x)的值:z<y为true,所以输出结果应该是z 所以最终输出是A ...

为什么我玩dota用c总是赢不了,但玩辅助却很厉害,总是赢,而且经常会得mv...
C是指后期,所谓后期就是在装备等级起来之后拥有拯救世界的能力的英雄,这种英雄一般在前期的时候需要队友保护,在前中期需要占据很大一部分资源来积累装备。取得某些质变装后,打架就有了一定的能力。从而开始领导队友,HOLD住局势,最后通过不断的打压对手,取得胜利。辅助则不一样,辅助英雄前期比较强势,...

这个第七题为什么是C,不是增反减同吗,我用右手定则就是D啊?求物理大神...
磁场先增大后减小,开始增大的时候,磁场向右,所以拇指向左,手指方向是电流方向,所以从a到b,余下自己分析。

我了个去 为嘛我用C语言写注册表键值成功但注册表中不现实 求大神讲解...
会被重定向到 HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node,最后一点,如果提示权限不足,要以管理员权限启动编程环境。例如用管理员权限打开visual studio,然后再打开你的工程,否则RegCreateKeyEx 以及 RegSetValueEx的返回值总是5(Access is denied.)--- 你的代码我测了下,排除了上面的问题后,执行无误。

C语言求大神。为什么我的fopen创建不了文件啊
这里写错了:f = fopen("ADDRESS_DATA", "w+");因为你用的是宏,去掉引号就可以了 f = fopen(ADDRESS_DATA, "w+");

[C语言]求大神,为什么我的gets()一输入就报错弹出。。
int L){int i;for(i=0;i<=L;i++){if(a[i]>=65||a[i]<=90)a[i]=a[i]+32;}return a[N];\/\/返回值是a[80],越界了,最大a[79]}int main(){char b[N],c[N];int L,i;printf("please input a string:\\n");gets(c);L=strlen(c);b[L]=f(c[N],L);\/\/c[...

海城区19340131951: 请高手帮忙,我用C语言写了个小程序,但是一运行 结果还没出来 它就消失了,这是怎么回事??? -
蛮常天麻: 1楼正解 如果一离开VC软件就用不了,那用C语言编出来的程序还用什么用 这个是因为你的程序没有发布,只是在编辑器里编译执行 你换个VS2010试试,直接自动发布了 话说如果水平不高发布出来的小程序基本上也没啥用处,先好好提高自己的水平吧少年

海城区19340131951: 为什么我用C语言编了个扫雷游戏,杀毒软件却报毒呢? -
蛮常天麻: 您好1,C语言、易语言等编写的软件很容易被杀毒软件误报.2,您可以到腾讯电脑管家官网下载一个电脑管家作为您电脑中杀毒软件.3,因为电脑管家采用了管家自主研发的第二代鹰眼智能反病毒引擎,采用了新一代的机器学习技术,可以轻松区分普通文件和木马病毒的区别,然后精准杀毒.4,电脑管家还是通过VB100测试的杀毒软件,VB100号称最具影响力的测试,强调杀毒软件的病毒查杀率及误报率,只有100%查杀流行病毒而不能有1个误报或疏漏,才能获得通过 如果还有其他疑问和问题,欢迎再次来电脑管家企业平台进行提问,我们将尽全力为您解答疑难

海城区19340131951: 我用C语言编了一个小程序,在我机子上都正常,在别人机子上为什么汉字变成了乱码?求高手解释啊.... -
蛮常天麻: system函数调用的系统外部程序,可以是系统命令dir 等,也可以是可执行文件,比如xxx.exe 所以执行的指令必须在该系统下能执行,但一般win7下能执行的xp下也能执行,除非一些特殊新指令.但一般你碰到是运行一些可执行文件,这样的话那个文件必须在运行的机子下存在, 首先会看当前目录(c语言程序执行的目录)是否有,如果没有他会根据PATH路径来查找,找不到就不会起作用了.

海城区19340131951: 为什么我编的C语言的for语句只执行一次 -
蛮常天麻: for 循环应该执行的是n次,但是你的1/a 除了第一次是1以外,别的时候都是0.都是a是int类型的,那么1/a 也会默认当作int 处理,只要a>1,那么1/a 就为0

海城区19340131951: 急!用C语言编写程序,要求每五个换一行,可是为什么我编写出来的结果是这样子的?求大神指点 -
蛮常天麻: #include int main() { int a=1,x,y,z,i=1; do { x=a%3; y=a%5; z=a%7; a++; if(x==2&&y==3&&z==2) { printf("%-5d",a); i++; } if(i%6==0){ i=1; printf("\n"); } } while(a<=1000); printf("\n"); return 0; } 问题出在当i=5的时候,后面可能很多数都不满足...

海城区19340131951: [求助]C语言编出来的EXE到别的电脑运行不了? -
蛮常天麻: 可以 需要必要的c运行库

海城区19340131951: 为何用c语言编写的程序代替dos命令copy -
蛮常天麻: 调用相关的系统api函数就可以了,Windows系统有一个CopyFile()的Api函数,自己在C语言代码中 加上#include <windows.h> 头文件,然后调用 CopyFile()函数复制即可.

海城区19340131951: 为什么我写的c语言程序命令不了继电器啊?大神指教... -
蛮常天麻: 你确定你买的继电器模块是高电平驱动的??好多继电器都是用8550低电平驱动的

海城区19340131951: 请问我的C语言程序怎么一直报错.是编写的不对么.? -
蛮常天麻: #include int radius,area;int main(void){ printf( "Enter radius (i.e. 10): " ); scanf( "%d", //你的...

海城区19340131951: 求助:为什么我编的C++程序在自己电脑上能正常运行,但编译后挂在后台linux系统下就总是运行一半后出错, -
蛮常天麻: 把你代码贴上来这个很明显的段错误说白了 就是溢出 越界

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网