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

C语言程序已停止工作是怎么回事,第1张

int a,b;

scanf("%d%d",&a,&b);//参数必须是指针(地址)才可以。

scanf()函数要求参数必须是指针类型,即将地址传输到其内,才可以让a , b变量中获取到数据。

如果你学过指针,你就会理解了。

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

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

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

计算机的计算速度是很快,有时候为了与其他因素相匹配,需要控制其运行的时间,这里便要用到Sleep(函数,其包涵在windowsh头文件中。方法如下:

打开C-Free,新建文件;点击编辑,输入Sleep函数代码即可。说明:

Sleep函数包涵在头文件windowsh中。Sleep函数括号中为系统停止运行的时间,可以为数字也可以为整型变量,单位为毫秒。

main()

{

;

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

#define STOP_KEY 'm'

while(你的循环条件) {

if(kbhit()) {

char ch=getchar();

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

}

}

;

}

int i,j;

//[6][6]不是76

int grade[6][6]={80,90,75,82,0,0,90,75,88,95,0,0,68,78,88,82,0,0,72,85,63,86,0,0,95,88,90,85,0,0};

char name[5][10]={"李一","成红","王强","张一","席二"};

for(i=0;i<5;i++)

{

for(j=0;j<4;j++)

{

grade[i][4]+=grade[i][j];

}

grade[i][5]=(grade[i][4])/4;

}

/for(j=0;j<4;j++)//这条没用不知道干嘛

{

for(i=0;i<5;i++)

{

grade[j][5]+=grade[i][j];

}

grade[i][6]=(grade[5][j])/5;

}/

printf("姓名        语文      数学    英语    综合    总分    平均分\n");

printf("--------------------------------------------------------------------\n");

for(i=0;i<5;i++)

{

printf("%s\t",name[i]);

for(j=0;j<6;j++)

{

printf("      %d",grade[i][j]);

//printf("\n");

}

printf("\n");

}

printf("--------------------------------------------------------------------\n");

printf("各科平均 ");

for(j=0;j<4;j++)

{

printf("%61d\t",grade[j][5]);

//printf("\n");

}

以上就是关于C语言程序已停止工作是怎么回事全部的内容,包括:C语言程序已停止工作是怎么回事、C语言中如何控制程序暂停、c语言里面,如何设置一个按键使程序停止等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://www.54852.com/zz/9355532.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存