C語言,輸入2 10之間的整數,如果輸入不滿足條件則重新輸入

2021-08-20 17:18:33 字數 3420 閱讀 1793

1樓:匿名使用者

using system;

class program

console.writeline(a);

console.readkey();}}

2樓:直角世界的部落格

這是個很多新手都不清楚的細節!

一定記住,scanf遇到第一個不符合的字元,就會把它放回輸入流去!下次還會讀到這個字元!

那麼下次scanf再讀的時候還會遇到它!還會給judge返回0,放回去!死迴圈!

1. 簡單的解決方法是在printf後面,迴圈裡寫 if(judge==0)getchar();來拿掉那個不符合要求的字元。

2. 法一的問題是,如果你還可能同時輸入多個非數字字元,這樣會輸出好幾遍"please input a number of one of your cards.\n",解決方法是寫個迴圈:

char c;if(judge==0)while((c=getchar())!='\n');

或者用getline,拿一行丟掉,是一樣的。

3. 或者直接改scanf,涉及scanf高階特性:

while(1)

judge = scanf("%d", &card);

加一行

if(judge == 1 && card > 1 && card < 11)

break;

printf("please input a number of one of your cards.\n");

這樣可以獲得,如果你輸入「abc3」,能把這個3輸入進去。如果是「abc15」,15超範圍了,一樣會讓你重新輸入。

看你的需求了。

關於這些,我剛寫了個文章:網頁連結講的更細緻,可以看看。

當然這個也有eof的情況,讀到輸入末尾,windows裡就是按ctrl-z+enter,有時候要按兩次ctrl-z+enter,模擬檔案讀到盡頭的情況,那還要繼續判斷!if(judge==eof) break;不過這個可能也超出考慮範圍了。

scanf裡有非常多這種很危險的小細節!最好看看!或者乾脆只用getline拿進來,用sscanf讀東西!

遇到c語言問題,輸入一個數,for迴圈內if語句,條件不符合重新輸入。

3樓:匿名使用者

break本來就是跳出迴圈用的,換成break自然沒問題。當你輸入小於100時,你讓i= 0,但是你忘記了還要執行i++,所以,i依然會變成1。

4樓:匿名使用者

if裡面加continue結束本次迴圈,開始下一次

5樓:鍾晴董琪

你可以用while來實現迴圈輸入,沒必要用goto,這個語句已經不建議使用了,樓上的正解

如何用c語言實現「判斷使用者輸入一個值為正整數,如果不是提醒使用者重新輸入一個值」?

6樓:

/*判斷是浮點數還是整數*/

#include

int main()

printf("%d是正整數\n", (int)m);

}return 0;}

7樓:

可以讓使用者輸入一個字串,然後檢查每個字元是否是0~9中的任意一個,如果不是,則不是正整數。當然這裡會允許000123這樣的情況出現,即數字可以用0開頭。如要處理,還需另外考慮,如果不考慮這個問題,可以寫成如下的**

#include

main()

pos++;}}}

8樓:匿名使用者

#include

int main()

printf("%d是正整數\n", (int)m);

}return 0;}

9樓:匿名使用者

int main()

while(a <= 0);}

10樓:黑白鍵上的探戈

/*我突然想到,如果能看懂下面的**,基礎知識已經算是掌握的不錯了。

應該能看懂精簡後的**,所以今天把**修改了一下,重新發了上來。

*/#include

#include

#include //我需要使用其中的getch函式使程式暫停

#define n 1000 //巨集定義一個常量n=1000,在下面直接使用

int len;//定義一個全域性變數,用來接收使用者輸入的有效長度

int charlength(char *ptr)//長度測量函式

int zerojudge(char *ptr)//首字元非零判斷函式

return 1;//否則返回1

}int ascjudge(char *ptr)//ascii碼比對函式

return 1;//如果上述for迴圈沒有觸發return,那麼說明所有字元合乎要求,返回1

}int main()//主函式走起~

printf("\n輸入正確,程式判斷其為正整數!按任意鍵退出...\n");

getch();//程式暫停以免一閃而過

return 0;//主函式結束~}

11樓:匿名使用者

//大家的回答貌似都解決不了使用者輸入1a、2b的情況啊

c語言 輸入10個整數,輸出其中不同的數,即如果一個數出現了多次,只輸出一次。 10

12樓:吐槽家無法忍受

#include"stdio.h"

main() }

c語言程式:輸入一個字元,如果是數字字元,把它轉換成相對應的數字並輸出;如果不是,則以十進位制整數形

13樓:

1、新建一個工程和.c檔案 ,輸入標頭檔案和主函式。

2、宣告被呼叫的函式,定義變數型別。

3、輸入整數。

4、用一個if語句去判斷整數是否為負數,若為負數則用putchar函式輸出一個負號。

5、呼叫一個函式。

6、定義函式的返回型別和形參型別。

7、通過if語句判斷該數是否僅剩一位數,若不是則執行else語句。

8、通過再次呼叫子函式一次輸出高位的數。

9、編譯執行。

14樓:

#include

int main(void)

else}

15樓:

#include

int main()

system("pause");

return 0;}

16樓:匿名使用者

#include

void main()}

C語言輸入整數,輸出其中不同的數,即如果數出現了

include define m 1000 int main void int i for i 0 i 10 i for i 0 i m i if b i 0 printf d n i c語言 輸入10個整數,輸出其中不同的數,即如果一個數出現了多次,只輸出一次。10 include stdio.h...

c語言程式設計輸入整數a和b如果a能被b整除

int main void include stdio.h main 程式設計實現 輸入整數a和b,如果a能被b整除,就輸出算式和商,否則輸出算式 整數商和餘數。include int main c語言程式設計題 要求使用者輸入兩個數a b,如果a能被b整除或a加b大於1000,則輸出a,否則輸出b...

C語言題目程式設計輸入若干正整數(輸入0或負數結束),找出其中的素數,並輸出

include int is prime int n return 0 c語言程式設計 在main函式中輸入一批正整數 以零或負數作為輸入結束標誌 include int perime int n int main printf d n sum return 0 include int prime ...