入門級C語言問題猜數字的小程式為什麼成功了之後輸入y程式卻跳出while迴圈了

時間 2021-08-30 11:19:49

1樓:匿名使用者

還是每次輸入數字之後的回車搞的鬼

#include

#include

#include

#include

int a();

int main()

}system("pause");

}int a()

else if(c

}return 1;

}在每個scanf語句後面加上句while(getchar()!='\n') continue;語句消除掉輸入之後的非數值字元和回車 ,或者採用樓上的方法,清空緩衝區.stdin就是乙個檔案指標,指向標準輸入檔案,一般就是你的鍵盤,還有stdout比較常用,指向標準輸出檔案,通常為螢幕。

2樓:前縈懷

由於你輸入猜測數字的時候每行都多輸乙個回車,所以最後你猜對的那個數字之後也輸入了乙個回車,所以 willing 接收的是個回車,直接退出

改正方法兩個:

1、加上這行 getchar();

在這行之前 willing=getchar();

2、用這行 scanf("\n%c",&willing); 替換1、的兩行

3樓:匿名使用者

要注意scanf,和getchar的讀取機制,他們都需要輸入回車才能觸發中斷將字元送入緩衝區。而scanf在讀入數字或字串以後是不會丟棄空白符(如回車和空格),而getchar會嚴格讀入下乙個字元。另外gets()讀入一行字串以後是會丟棄回車符的,這一點要注意。

解決的方法是寫入 while ((c = getchar()) == ' ' || c == '\n');如果讀到空格回車則繼續讀

4樓:匿名使用者

willing=getchar();

加上 fflush(stdin);試試

c語言中如何實現當輸入y時程式迴圈,n時迴圈終止

5樓:匿名使用者

#include

#include

using namespace std;

int main()

return 0;}

6樓:劉文正粉絲

# include

int main(void)

return 0;}

c語言猜數字遊戲源**

7樓:鳴蟬百

小遊戲2048:62616964757a686964616fe58685e5aeb931333433633437

#include

#include

#include

#include

#include

int  jsk( );   //計算空格數

void rsgm( );  //重置遊戲

void inkey( );  //按鍵輸入

void left( );   //向左移動

void right( );  //向右移動

void up( );  //向上移動

void down( );  //向下移動

void show( );   //輸出介面

void adnum( ); //新增隨機數

void yes( );   //遊戲是否結束(1是0否)

void gtxy(int x, int y); //控制游標位置的函式

int a[4][4];   //儲存16個格仔中的數字

int score = 0;  //每局得分

int best = 0;  //最高得分

int ifnum;  //是否需要新增數字(1是0否)

int over;   //遊戲結束標誌(1是0否)

int i,j,k;

int main( )

void color(int a)   //設定字元顏色的函式(a應為1-15)

void rsgm( )   //重置遊戲

else n--; }

else }}

adnum( );

system("cls");

console_cursor_info gb=;  //以下兩行是隱藏游標的設定,gb代指游標

color(14);   //設定字型淡黃色

printf("\n\n\t\t  2048小遊戲"); color(7);   //恢復白字黑底

printf("\n\t┌──────┬──────┬──────┬──────┐");

printf("\n\t│      │      │      │      │");

printf("\n\t├──────┼──────┼──────┼──────┤");

printf("\n\t│      │      │      │      │");

printf("\n\t├──────┼──────┼──────┼──────┤");

printf("\n\t│      │      │      │      │");

printf("\n\t├──────┼──────┼──────┼──────┤");

printf("\n\t│      │      │      │      │");

printf("\n\t└──────┴──────┴──────┴──────┘");

show( );

}

void show( )   //輸出介面

else if(a[i][j]<10)

else if (a[i][j] == 4)

else if (a[i][j] == 8)

printf("   %d  ", a[i][j]); color(7 ); printf("│");

}else if (a[i][j] < 100)

else if (a[i][j] == 32)

else if (a[i][j] == 64)

printf("  %d  ", a[i][j]); color(7); printf("│");

}else if (a[i][j] < 1000)

else if (a[i][j] == 256)

else if (a[i][j] == 512)

printf("  %d ", a[i][j]); color(7); printf("│");

}else if (a[i][j] < 10000)

else

printf(" %d ", a[i][j]); color(7); printf("│");}}

if (jsk( ) == 0)

}}

void inkey( )   //按鍵輸入

else  if (key == 78|| key == 110)

else  continue; }

ifnum = 0;

if(key==224)key=getch( );

switch (key)

if (score > best)

if (ifnum)

}}

int jsk( )   //計算空格數

  }   }

return n;

}

void left( )   //向左移動

else if ( a[i][k] == 0)

else

k++; }}}

}}

void right( )   //向右移動

else if ( a[i][k] == 0)

else k--; }}}

}}

void up( )   //向上移動

else if ( a[k][i] == 0)

else

k++; }}}

}}

void down( )   //向下移動

else if (a[k][i] == 0)

else k--; }}}

}}

void adnum( )   //新增隨機數

else

else }}}

}}

void yes( )   //遊戲是否結束}}

over = 1;

}

void gtxy(int x, int y)   //控制游標位置的函式

8樓:匿名使用者

#include

#include

#include

int eachdiff(int a,int n)int main()

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

if(judgeinput(b,4)==0)if(judgea(a,b,4)==4)

printf("\t結果:您有%d個數字和位置都對了,有%d個數字對了而位置沒對\n",judgea(a,b,4),judgeb(a,b,4));

fth++;

} printf("\n很遺憾。正確答案是:");

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

printf("%d",a[i]);

printf("下次再玩吧!88\n");

system("pause");

return 0;}

9樓:匿名使用者

/*幸運52遊戲 */

#include

void main()

if(a==c)

else

printf("\n*****************************************\n遊戲結束,大蝦請重新來過\n");

getch();}

10樓:匿名使用者

# include

# include

# include

main()

}while(ba)}}

C語言程式問題,我的c語言程式有什麼問題? 10

fun x,y,1 求每一行的最小值放進y裡面 fun x,y,0 求每一行的最大值放進y裡面 伺服器 這個應該是判斷條件有問題,那個判斷形式應該是?前後返回的是判斷條件為真的時候的值,後面返回的是判斷條件不成立的時候的值,你這個寫法根本沒有改變flag的值,因為根本就沒有做賦值的操作。我的c語言程...

關於C語言幾個程式的問題

第一個程式 修改兩處 include void main int qh int x,int y 第二個程式 修改4處 include include void main else if d 0 注意這裡 else 第一個 下面幾行格式控制有誤 scanf f l 輸入變數 printf 請輸入出發時...

c語言,以下程式的輸出結果是,C語言問題 以下程式的輸出結果是?

輸出1 3 這是遞迴了,所以先是fun 3 進入後發現3 2 1,所以又繼續func 3 2 也就是fun 1 進入發現1 2 0,就執行prinft,輸出1,然後fun 1 就返回了 返回出去正好是fun 3 的prinft,輸出3 進入fun 3 進入fun 1 輸出1退出fun 1 輸出3退出...