一运行C语言程序 就提示程序已经停止工作

一运行C语言程序 就提示程序已经停止工作,第1张

试试重新建立工程,编译以下空代码的程序

int main()

{

}

如果这个空代码编译运行不出问题,说明你的程序在调用scanf或者调用指针时候有内存上的错误出现。(仔细查看代码中的scanf和指针调用时的内存使用错误,也可以把所有用到指针和scanf的地方先屏蔽,找出哪个地方内存分配不对)。

如果这个空代码运行也出问题,说明是你编译器有问题。

首先你要知道该进程的PID

如果在windows下可以用tskill PID命令来实现,如果是c语言,只需要用system函数就可以实现

#include "stdioh"

#include "stdlibh"

int main()

{

    system("tskill XXXX");

    return 0;

}

其中XXXX就是你需要传入的进程的PID

如果是linux或者unix的系统

则用kill命令:

#include "stdioh"

#include "stdlibh"

int main()

{

    system("kill XXXX");

    return 0;

}

XXX一样是进程的PID

退出整个程序,终止进程,并返回0给 *** 作系统。

1、由于返回0代表程序正常退出,返回1等其他数字通常代表异常终止,可通过返回的具体数值判断出错源。

2、函数名: exit(),所在开头文件为:stdlibh

3、关闭所有文件,终止正在执行的进程。exit(1)表示异常退出这个1是返回给 *** 作系统的。

扩展资料:

1、exit(0) 表示程序正常退出,exit⑴/exit(-1)表示程序异常退出。

2、exit() 结束当前进程,在整个程序中,只要调用 exit ,就结束了。

3、exit(x)(x不为0)都表示异常退出,这个x是返回给 *** 作系统(包括UNIX,Linux,和MS DOS)的,以供其他程序使用。

4、exit()通常是用在子程序中用来终结程序用的,使用后程序自动结束,跳回 *** 作系统。

参考资料:Exit()_百度百科

你的C语言程序中,输入语句scanf("%d,&a");和scanf("%d,&b");写错了,应该是scanf("%d",&a);和scanf("%d",&b);双引号的位置不对

你的C语言程序我帮你改完了,你看看吧(改动的地方见注释)

#include <stdioh>

int main(){ 

 int a,b,c,d,e,f,g; 

 printf("请输入a的值:\n"); 

 scanf("%d",&a); //这里把scanf("%d,&a");改成scanf("%d",&a);

 printf("请输入b的值:\n"); 

 scanf("%d",&b); //这里把scanf("%d,&b");改成scanf("%d",&b);

 c=a+b; 

 d=a-b; 

 e=ab; 

 f=a/b; 

 g=a%b; 

 printf("a+b的值为:%d\n",c); 

 printf("a-b的值为:%d\n",d); 

 printf("ab的值为:%d\n",e); 

 printf("a/b的值为:%d\n",f); 

 printf("a%b的值为:%d\n",g);

 return 0;

}

大概问题,我已经知道了,所谓的执行到一半就终止,是因为数组越界了,而且编译器不会报警。

比如,在你这个程序里,我输出50-200,他永远只会提示你有21个,因为你输出之前,还需要把这个偶数存放到一维数组a中,然而一维数组只能存放20个数,50-200中间有76个偶数,到了第20个偶数的时候,数组就已经越界了,程序就运行不正常了,应该是直接跳出了循环。而你是在数组存放了第20个数的后面进行了i++,所以提示是第21个数,数组是从0开始计数的,你是从一开始提示的,所以第21个数其实就是数组a[20]的数,然后就跳出循环了,只要偶数大于21个,程序永远都只显示21个数,建议要么把数组去掉,这样就可以显示全部的偶数了,就正常了,要么把数组设置的大一点,但是这样,如果数太多了,还是会溢出的,看你的感觉是想保存前20个偶数,那么建议程序改成这样,就能即保存前20个数,显示的也是正常的。

代码如下:

#include <stdioh>

#include <windowsh>

int main()

{

int a[20];

int c,d,e,f,g,h,i;

long b;

printf("起始值:");

scanf("%d",&c);

printf("终止值:");

scanf("%d",&d);

d++;

for(b=c;b<d;b++)

{

if(b%2==0)

{

if(i<20)

{

a[i]=b;

}

i++;

printf("第%d个偶数:%d\n",i,b);

}

}

printf("%d到%d中有%d个偶数",c,d,i);

return 0;

}

main()

{

;

/ 需要按键暂停或停止部分,通常是循环体/

#define STOP_KEY 'm'

while(你的循环条件) {

if(kbhit()) {

char ch=getchar();

if(ch == STOP_KEY) break; /中止循环/

}

}

;

}

以上就是关于一运行C语言程序 就提示程序已经停止工作全部的内容,包括:一运行C语言程序 就提示程序已经停止工作、怎么用c语言结束某进程、c语言中,exit(1)是什么意思求助~等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9772681.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存