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語言怎麼寫輸入資料有多組,每組輸入正整數N
你可以先做一個預處理。例如說有一個a陣列,a n 為1表示n是2的冪,否則不是 那麼你在初始化的時候a陣列整個就是全為0的 然後int p 1 for int i 0 i 31 i 這裡根據你要的資料量大小決定,這裡是有符號的 ok,預處理只做了32次賦值和32次位移而已。接下來對於任意輸入的n,你...
c語言 輸入整數,判斷它能否被3,5,7整除
include int main void 光棍誓言 include void main include using namespace std int main 閆孟喬孟孟 if x 3 0 cout能被3整除 n else cout 不能被3整除 n if x 5 0 cout 能被5整除 n ...
c語言題目 輸入正整數a,b,c,輸出a b的小數形式,精確
你沒有必要那樣做的,直接這樣就可以了。如。c 8 double pp a b if pp 1000000000 10 4 判斷小數點後第9位是否大於4,大於4就要進位 pp 0.00000001 printf 結果是 0.8f pp 輸出結果,自動只輸出到小數點後8位。 include includ...