只要编译通过,一般情况下C语言程序停止工作,多为输入输出格式不对,或计算陷入死循环。
1、输入输出格式不对。最常见的就是&符号,该有的没有,不该有的打了&符号。
例如:
int n;
scanf("%d",n);
n前少打了&符号。编译能通过,执行时就会出现停止工作的情况。
2、
个别计算陷入死循环的情况,例如:
int i,k;
i赋值;
k=关于i的表达式;
计算k值陷入死循环。
i=strlen(a),j=strlen(b);
for (k = 0; k < j; k++){
a[i++] = b[k];
}
建议这样改
另:
char a[30]={0}, b[30]={0};数组清零
C语言中函数的调用中,参数传递,只能传递数值。如果只是将数值传递过去(接收者是形参),在子函数中变化,形参的变化,不会影响到实参数据的内容。
C中,每定义一个变量,系统都会在内存中给其分配一个空间用来存储数据。而这个空间的编号就是这个变量的地址。当我们将这个地址传递到子函数中,子函数在 *** 作数据时,就会改变这个地址中的数据,这样,实参的数据是会发生变化。
而你程序中,传递的是a b本身的值(可能是0,可能是1,可能是任意的数),scanf()将这两个值当作地址去 *** 作,因此会产生系统错误,导致程序运行停止。
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的DMRitchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。
没看到你错误的情况,代码太长,懒得看了。
c程序死掉报个红叉叉的错误,99%都是数组越界或者指针没有初始化的滥用,看你的题目估计也是数组越界造成的问题。
你可以用调试的方法进去,重现错误,回到vc的时候,会定位到错误的地方,自己再看看应该就可以了
扫了一遍,感觉你的r数组没有定义值就开始引用了。
for(j=0;j<5;j++)
{
t=a[k][j];
a[k][j]=a[r[k]][j];
a[r[k]][j]=t;
}
这句话开始使用r,但是前面没有看到哪里给r赋值
需要为输入的数据分配指定的内存空间,如下修改就没问题了
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char argv[])
{
int buf[88],iIn=0;
scanf("%d",&iIn);
char sIn=buf;
scanf("%s",sIn);
char sOut;
sOut=sIn;
for(;sIn!=0;sIn++)
sIn+=iIn;//指针sIn向后移动的同时,sIn的目标增加iIn
printf("%s\n",sOut);
system("PAUSE");
return EXIT_SUCCESS;
}
试一下吧,有问题再问!!
以上就是关于c语言中一般运行后停止工作有哪些情况全部的内容,包括:c语言中一般运行后停止工作有哪些情况、C语言程序运行的时候已停止工作、在运行C语言程序时为什么就提示程序已停止工作等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)