亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

以下語法中出現的goto是怎么回事?麻煩幫忙解釋以下!

以下語法中出現的goto是怎么回事?麻煩幫忙解釋以下!

C
慕后森 2021-09-20 14:10:13
#include<stdio.h>#include <time.h>main(){int i,n[4];srand( time(NULL) );n[0]=rand()%10;n[1]=rand()%10;for( i = 0; i < 20;i++ ){n[2]=n[1]+n[0];loop:printf("%d+%d=",n[0],n[1]);scanf("%d",n[3]);if(n[3]==n[2]){printf( "right!" );}else{printf( " error!\n重新輸入" );goto loop;}}}
查看完整描述

3 回答

?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

少了個頭文件和取地址符,還有函數初始化位置不對,下面是正確的程序,最后說一句,在c語言中盡量不要使用goto語句,因為這個語句會限制人們的思想的
#include<stdio.h>
#include <stdlib.h>
#include <time.h>
main()
{
int i,n[4];
for( i = 0; i < 20;i++ )
{
srand( time(NULL) );
n[0]=rand()%10;
n[1]=rand()%10;
n[2]=n[1]+n[0];
loop:
printf("%d+%d=",n[0],n[1]);
scanf("%d",&n[3]);
if(n[3]==n[2])
{
printf( "right!\n" );
}
else
{
printf( " error!\n重新輸入" );
goto loop;
}
}
}



查看完整回答
反對 回復 2021-09-23
?
九州編程

TA貢獻1785條經驗 獲得超4個贊

   goto語句是C語言中的跳轉命令。使用方法:

1goto label;

    label為本函數中聲明的一個標號,執行goto后,跳轉到該標號指定行處繼續執行。

    一般來說,很多書都不推薦使用goto,不過很多書都給了一些很牽強的理由。在某些情況下需要使用goto,比如跳出多重循環。

    但是goto不能濫用,主要缺點有這幾個:①影響程序可讀性  ②影響程序執行效率。分支語句會對指令預取造成很大的影響,而且跳轉的位置有時分支預測單元可能預測不到。常用的跳轉語句如if、for等,對這點影響都很小,但是goto不同,一個較長的跳轉可能給指令預取單元帶來很大的麻煩。

    所以說,不要濫用goto,除非你確定它不會給你造成麻煩。



查看完整回答
反對 回復 2021-09-23
?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

可以看一下這個:
#include<stdio.h>

#include <stdlib.h>
#include <time.h>
int fun(int a,int b,int c)
{
int d;
printf( " error!\n請重新回答:" );
printf("%d+%d=",a,b);
scanf("%d",&d);
if(d==c)
return 0;
else
return 1;
}
main()
{
int i,n[4];
for( i = 0; i < 20; i++ )
{
srand( time(NULL) );
n[0]=rand()%10;
n[1]=rand()%10;
n[2]=n[1]+n[0];
printf("%d+%d=",n[0],n[1]);
scanf("%d",&n[3]);
if(n[3]==n[2])
{
printf( "right!\n" );
}
else
{
while(fun(n[0],n[1],n[2]));
printf( "right!\n" );
}
}
}



查看完整回答
反對 回復 2021-09-23
  • 3 回答
  • 0 關注
  • 270 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號