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 ...