引用 | 編輯
湯圓原
2010-12-09 21:44 |
樓主
▼ |
||
x0
我已經想破頭,就是想不出來雖然知道 用 do while 或設函數 可以做出,但怎麼做就是做不出來 以下程式要怎麼做防呆,還有輸入英文時會跑無限次,這要如何解決 防呆條件:僅輸入年或僅輸入年與月,沒完整輸入年月日,則出現請輸入正確的民國年.月.日 #include<stdio.h> #include<stdlib.h> int main() { int y; //出生年 int m; //出生月 int d; //出生日 printf("請輸入出生年.月.日\n"); scanf("%d%d%d" ,&y,&m,&d); if(y%12==1){ //出生年除以12的餘數等於一的生肖為鼠 printf("生肖:鼠\n"); } else if(y%12==2){ printf("生肖:牛\n"); } else if(y%12==3){ printf("生肖:虎\n"); } else if(y%12==4){ printf("生肖:兔\n"); } else if(y%12==5){ printf("生肖:龍\n"); } else if(y%12==6){ printf("生肖:蛇\n"); } else if( .. 訪客只能看到部份內容,免費 加入會員 x0
|
引用 | 編輯
totsi
2010-12-13 12:44 |
1樓
▲ ▼ |
從程式碼看來,只會跑一次而,不會跑很多次。
至於防呆,建議是使用自己能判定的欄位來取值。 用位置的話,也要確定欄位是沒輸入,還是不輸入。 沒輸入:19881231 不輸入:1231 最保險就是長度跟範圍檢查,例如 年:2-4碼,且不會小於等於零,或者.... 月:1-2碼,且也不會小於等於零,或者.... 日:1-2碼,且也不應該小於等於零,或者.... 大概方式如上,再者,上述條件還有所不足,所以僅供參考用。 x0 |