第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

以下語(yǔ)法中出現(xiàn)的goto是怎么回事?麻煩幫忙解釋以下!

以下語(yǔ)法中出現(xiàn)的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貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊

少了個(gè)頭文件和取地址符,還有函數(shù)初始化位置不對(duì),下面是正確的程序,最后說一句,在c語(yǔ)言中盡量不要使用goto語(yǔ)句,因?yàn)檫@個(gè)語(yǔ)句會(huì)限制人們的思想的
#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;
}
}
}



查看完整回答
反對(duì) 回復(fù) 2021-09-23
?
九州編程

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個(gè)贊

   goto語(yǔ)句是C語(yǔ)言中的跳轉(zhuǎn)命令。使用方法:

1goto label;

    label為本函數(shù)中聲明的一個(gè)標(biāo)號(hào),執(zhí)行g(shù)oto后,跳轉(zhuǎn)到該標(biāo)號(hào)指定行處繼續(xù)執(zhí)行。

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

    但是goto不能濫用,主要缺點(diǎn)有這幾個(gè):①影響程序可讀性  ②影響程序執(zhí)行效率。分支語(yǔ)句會(huì)對(duì)指令預(yù)取造成很大的影響,而且跳轉(zhuǎn)的位置有時(shí)分支預(yù)測(cè)單元可能預(yù)測(cè)不到。常用的跳轉(zhuǎn)語(yǔ)句如if、for等,對(duì)這點(diǎn)影響都很小,但是goto不同,一個(gè)較長(zhǎng)的跳轉(zhuǎn)可能給指令預(yù)取單元帶來很大的麻煩。

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



查看完整回答
反對(duì) 回復(fù) 2021-09-23
?
RISEBY

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊

可以看一下這個(gè):
#include<stdio.h>

#include <stdlib.h>
#include <time.h>
int fun(int a,int b,int c)
{
int d;
printf( " error!\n請(qǐng)重新回答:" );
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" );
}
}
}



查看完整回答
反對(duì) 回復(fù) 2021-09-23
  • 3 回答
  • 0 關(guān)注
  • 267 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)