week-1
1.1 逆序的三位数
程序每次读入一个正三位数,然后输出逆序的数字。注意,当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。
简单一点
#include <stdio.h>
int main(){
int a;
scanf("%d", &a);
int x100 = a/100;
int x10 = (a-x100*100)/10;
int x = a - x100*100 - x10*10;
printf("%d", x*100+x10*10+x100);
return 0;
}
复杂一点:需要考虑到百位十位为零的情况
#include <stdio.h>
int main(){
int a;
scanf("%d", &a);
int x100 = a/100;
int x10 = (a-x100*100)/10;
int x = a - x100*100 - x10*10;
if(x) printf("%d%d%d", x,x10,x100);
else{
if(x10) printf("%d%d", x10,x100);
else{
printf("%d", x100);
}
}
return 0;
}
week-2
2.1 时间转换
UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分。
#include <stdio.h>
int main(){
int a;
scanf("%d", &a);
int h1 = a / 100;
int min = a % 100;
int h2;
if (h1>8){
h2 = h1 - 8;
}
else h2 = h1 - 8 + 24;
printf("%d", h2*100+min);
return 0;
}
2.2 翻译
#include <stdio.h>
int main(){
int RS;
scanf("%d", &RS);
int R = RS/10, S = RS%10;
switch(S){
case 1:
printf("Faint signals, barely perceptible, ");
break;
case 2:
printf("Very weak signals, ");
break;
case 3:
printf("Weak signals, ");
break;
case 4:
printf("Fair signals, ");
break;
case 5:
printf("Fairly good signals, ");
break;
case 6:
printf("Good signals, ");
break;
case 7:
printf("Moderately strong signals, ");
break;
case 8:
printf("Strong signals, ");
break;
case 9:
printf("Extremely strong signals, ");
break;
}
switch(R){
case 1:
printf("unreadable.");
break;
case 2:
printf("barely readable, occasional words distinguishable.");
break;
case 3:
printf