當前位置:首頁 » 編程語言 » c語言為什麼循環使用不了
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言為什麼循環使用不了

發布時間: 2022-09-25 02:11:45

c語言 寫了一個程序代碼 為什麼不能循環了

因為你那個a:break直接執行了,順序執行下來會執行這個break,你把這個記號放到return那裡就可以了
a:return 0;

② c語言while循環為什麼執行不了

因為你的break沒有在大括弧里,每次直接跳出了循環,條件判斷後的多條語句一定要放到括弧里。我幫你改了一下,你再試試。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain()
{
intnumber,a;
inti=9;
srand((unsigned)time(NULL));
number=rand()%101;
while(1){
i--;
if(i<0){
printf("游戲結束你猜錯了,這個數是%d",number);
break;
}

printf("此數范圍是0-100");
printf("請輸入一個0-100的數字");
scanf("%d",&a);
if(a==number)
{
printf("游戲結束你猜對了,這個數是%d",number);
}
elseif(a<number)
{
printf("你輸入的數比這個數小,你還有%d次機會,請重新輸入",i);
}
elseif(a>number)
{
printf("你輸入的數比這個數大,你還有%d次機會,請重新輸入",i);
}
elseif(a==number){
printf("游戲結束你猜對了,這個數是%d",number);
return0;
}
}
return0;
}

③ c語言for語句為什麼循環不成功

你的循環成功了,但是沒有在每次循環a=0,造成完數的判斷有誤,最後只有1一個「完數」(因為a被累加起來了)

④ C語言scanf語句導致無法進入循環

問題已經解決,還是比較簡單的。。。一個小問題而已。是scanf函數的問題。

我先貼圖好吧,我運行的結果。

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#define SIZE 50

#define RAT 5

struct movie{

char name[SIZE];

int rating;

};

void * s_gets(char *,int n);

int main()

{

int i=0,j,k;

struct movie *mov;

printf("輸入你想錄入的影片數量 ");

scanf("%d",&k);

mov=(struct movie *) malloc(k*sizeof(struct movie));

printf("輸入你想錄入的第一部影片名稱 ");

while(i<k&&s_gets(mov[i].name,SIZE)!=NULL&&mov[i].name[0]!='')

{


printf("輸入影片序號:");

scanf("%d",&mov[i++].rating);

while(getchar()!=' ')

continue;

puts("輸入下一部影片名稱:(empty line to stop):");

}//printf("%s ",mov[0].name);

if(i==0)

printf("No data entered ");

else

printf("Here is the movie list: ");


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

{

printf("Movie: %s Rating: %d ",mov[j].name,mov[j].rating);


}printf("Bye ");

return 0;

}


void * s_gets(char *ch,int n)

{

char *ret_val;

char *find;

fflush(stdin); //getchar();可選,最好用fflush函數;

ret_val=fgets(ch,n,stdin);

if(ret_val)

{

find=strchr(ch,' ');

if(find)

*find='';

else

while(getchar()!=' ')

continue;

}

return ret_val;

}

然後貼我的源碼,就多了一行代碼而已,在你的s_get函數里的fgets函數前面加了個fflush函數,位置,我已經加粗標明出來了。。。問題也很簡單,就是在第一個scanf函數的時候,你是按了回車的,所以第二次使用scanf的時候,fgets直接吃掉了回車,這是我們不需要的,所以在這個之前,我們必須先把stdin輸入流里的回車,清理掉,使用fflush函數一次清理了stdin輸入流,等stdin輸入流干凈了之後,再調用fgets就不會出錯了,當然也可以使用getchar函數把回車吃掉,不過比較麻煩,我一般喜歡用fflush函數,反正輸入前,那些臟東西,我們不關心,也不需要,而且萬一有多個呢,getchar只能清理一個臟東西,而fflush函數,直接全部沖掉,來的簡單方便。。。。

問題解決,請採納!不懂再問。

⑤ c語言for循環無法正常執行

你沒有搞清楚for循環的結構,所以你的for循環寫錯了
for(初始化;循環條件;循環增量)
很明顯你把第一個初始化和最後的增量弄反了,這就導致了你的循環是個永不退出的死循環了。
換成for(b=b;b<=12;b=b+1)就可以了。

⑥ 為什麼下面的c語言while循環會失敗啊

ch是字元,你只能從鍵盤輸入單個字元存入ch,不能用ch和yes這種字元串比較大小

#include<stdio.h>

voidmax(inti,intj)
{
if(i>j)
printf("%d>%d ",i,j);
else
printf("%d>%d ",j,i);

}

intmain(void)
{
inta,b;
charch;

do
{
printf("請輸入要進行比大小的兩個數字,中間用空格隔開 ");
scanf("%d%d",&a,&b);

max(a,b);
printf("如果要繼續請輸入Y或者y ");
scanf("%c",&ch);//%c前面必須加空格

}while('y'==ch||'Y'==ch);//ch是字元,所以只能和Y/y比較是否相等,"yes"是字元串

return0;
}

⑦ C語言無法循環是哪裡出了問題

if...else不是循環語句。

下面是一個例子(用的while循環):

#include <stdio.h>

#include <math.h>

int main()

{

double F,C;

int n;

int i=1;

scanf("%d",&n);

while(i<=n)

{

scanf("%lf",&F);

C = 5 * (F-32) / 9;

printf("%.5lf ",C);

i++;

}

return 0;

}

運行截圖: