题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2629
题目描述
思路:
就是直接获取字符串,然后通过下标的方式获取对应的值即可。就是表内的值需要对应地进行一些判断,再显示出对应的省份。
AC代码:
#include<stdio.h>
#include<string.h>
int main(){
int n;
char idNum[50],address[20];
int i;
int psNum,year,month,day;
scanf("%d",&n);
while(n--){
psNum = 0;
year = 0;
month = 0;
day = 0;
scanf("%s",&idNum);
for(i=0;i<18;i++){
if(i>=0&&i<2){
//读取前两位并且转为int类型
psNum=psNum*10+((int)idNum[i]-48);
}else if(i>=6&&i<10){//获取年份
year =year*10+((int)idNum[i]-48);
}
}
// printf("地址%d年%d月%d日%d\n",psNum,year,month,day);
switch(psNum){
case 33:strcpy(address,"Zhejiang");break;
case 82:strcpy(address,"Macao");break;
case 11:strcpy(address,"Beijing");break;
case 54:strcpy(address,"Tibet");break;
case 71:strcpy(address,"Taiwan");break;
case 21:strcpy(address,"Liaoning");break;
case 81:strcpy(address,"Hong Kong");break;
case 31:strcpy(address,"Shanghai");break;
default:break;
}
//330000198910120036
printf("He/She is from %s,and his/her birthday is on %c%c,%c%c,%d based on the table.\n",address,idNum[10],idNum[11],idNum[12],idNum[13],year);
}
return 0;
}