当前位置:首页 » 编程语言 » c语言运行后就停止
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言运行后就停止

发布时间: 2023-07-05 14:59:39

1. c语言程序运行后自动关闭,怎么办

可以在main函数返回前,加入一句
system("pause");
或getch();
就可以使我们能够看清程序的输出,直到我们按任意键后再返回到代码编辑界面。

2. c语言程序一运行就停止工作

typedef
struct
{
int
CoeffArray[
MaxDegree
+
1];
int
HighPower;
}*
Polynomial;
按照你的定义
Polynomial是一个指针类型
Polynomial
Poly1
;只是定义了一个指针,并没有实例化对象
Poly1->HighPower=
1000
;像这样的操作是不行的,因为此时Poly1的HighPower域还没有非配空间。
下面是正确操作
Polynomial
Poly1
=
(Polynomial
)malloc(sizeof(int)*(MaxDegree
+
2));
Poly1->HighPower=
1000
;

3. C语言程序已停止工作是怎么回事

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

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

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

C语言中函数的调用中,参数传递,只能传递数值。如果只是将数值传递过去(接收者是形参),在子函数中变化,形参的变化,不会影响到实参数据的内容。

C中,每定义一个变量,系统都会在内存中给其分配一个空间用来存储数据。而这个空间的编号就是这个变量的地址。当我们将这个地址传递到子函数中,子函数在操作数据时,就会改变这个地址中的数据,这样,实参的数据是会发生变化。

而你程序中,传递的是a b本身的值(可能是0,可能是1,可能是任意的数),scanf()将这两个值当作地址去操作,因此会产生系统错误,导致程序运行停止。

5. c语言代码执行到一半终止

大概问题,我已经知道了,所谓的执行到一半就终止,是因为数组越界了,而且编译器不会报警。
比如,在你这个程序里,我输出50-200,他永远只会提示你有21个,因为你输出之前,还需要把这个偶数存放到一维数组a中,然而一维数组只能存放20个数,50-200中间有76个偶数,到了第20个偶数的时候,数组就已经越界了,程序就运行不正常了,应该是直接跳出了循环。而你是在数组存放了第20个数的后面进行了i++,所以提示是第21个数,数组是从0开始计数的,你是从一开始提示的,所以第21个数其实就是数组a[20]的数,然后就跳出循环了,只要偶数大于21个,程序永远都只显示21个数,建议要么把数组去掉,这样就可以显示全部的偶数了,就正常了,要么把数组设置的大一点,但是这样,如果数太多了,还是会溢出的,看你的感觉是想保存前20个偶数,那么建议程序改成这样,就能即保存前20个数,显示的也是正常的。
代码如下:
#include <stdio.h>
#include <windows.h>
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;
}

6. C语言程序运行显示停止运行

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

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

#include<stdio.h>

intmain(){

inta,b,c,d,e,f,g;

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

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

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

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

c=a+b;

d=a-b;

e=a*b;

f=a/b;

g=a%b;

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

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

printf("a*b的值为:%d ",e);

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

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

return0;

}

7. C语言程序运行以后就会立刻关闭

因为你的程序没有暂停的,所以运行完了之后,就自动关了呗。。。
在最后加个
getchar();
或者
system(pause);