C636
C
民國元年
給定若干個民國年份 -
每行各有一個整數
每行各輸出一個中文字,表示對應的生肖。
第一題組
測資 1:
1
107
輸出 1:
鼠
狗
測資 2:
-1
10
-100
輸出 2:
豬
雞
猴
因為沒給要輸入之行數,所以改成EOF形式判斷輸入是否結束。
while(scanf("%d", &n) != EOF){
//底下的程式
}
再來只要將輸入進來的
n = (n + 120) % 12;
switch(n){
case 1:
printf("鼠\n"); break;
case 2:
printf("牛\n"); break;
case 3:
printf("虎\n"); break;
case 4:
printf("兔\n"); break;
case 5:
printf("龍\n"); break;
case 6:
printf("蛇\n"); break;
case 7:
printf("馬\n"); break;
case 8:
printf("羊\n"); break;
case 9:
printf("猴\n"); break;
case 10:
printf("雞\n"); break;
case 11:
printf("狗\n"); break;
default: //當 n 為零時
printf("豬\n"); break;
}
#include <stdio.h>
#include <string.h>
int main(){
int n;
while(scanf("%d", &n) != EOF){
n = (n + 120) % 12;
switch(n){
case 1:
printf("鼠\n"); break;
case 2:
printf("牛\n"); break;
case 3:
printf("虎\n"); break;
case 4:
printf("兔\n"); break;
case 5:
printf("龍\n"); break;
case 6:
printf("蛇\n"); break;
case 7:
printf("馬\n"); break;
case 8:
printf("羊\n"); break;
case 9:
printf("猴\n"); break;
case 10:
printf("雞\n"); break;
case 11:
printf("狗\n"); break;
default:
printf("豬\n"); break;
}
}
return 0;
}
思考了一下,因為沒有民國
if(n < 0)
n++;
#include <stdio.h>
#include <string.h>
int main(){
int n, c;
while(scanf("%d", &n) != EOF){
if(n < 0)
n++;
c = (n + 120) % 12;
switch(c){
case 1: printf("鼠\n"); break;
case 2: printf("牛\n"); break;
case 3: printf("虎\n"); break;
case 4: printf("兔\n"); break;
case 5: printf("龍\n"); break;
case 6: printf("蛇\n"); break;
case 7: printf("馬\n"); break;
case 8: printf("羊\n"); break;
case 9: printf("猴\n"); break;
case 10: printf("雞\n"); break;
case 11: printf("狗\n"); break;
default: printf("豬\n"); break;
}
}
return 0;
}
這次想得不夠完善,以至於出錯,好在之後有發現問題所在,也就是民國