试试重新建立工程,编译以下空代码的程序:
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)是什么意思求助~等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)