題目:

2629題
代碼:
#include<stdio.h>
#include<string.h>
int main()
{
int i,k,n,y,m,d,adress;
char a[18],s[20];
scanf("%d",&n);
for(k=0;k<n;k++)
{
getchar();
for(i=0;i<18;i++)
{
scanf("%c",&a[i]);
}
adress=(a[0]-'0')*10+(a[1]-'0');
if(adress==33) strcpy(s,"Zhejiang");
if(adress==11) strcpy(s,"Beijing");
if(adress==71) strcpy(s,"Taiwan");
if(adress==81) strcpy(s,"Hong Kong");
if(adress==82) strcpy(s,"Macao");
if(adress==54) strcpy(s,"Tibet");
if(adress==21) strcpy(s,"Liaoning");
if(adress==31) strcpy(s,"Shanghai");
printf("He/She is from %s,and his/her birthday is on %c%c,%c%c,%c%c%c%c based on the table.\n",s,a[10],a[11],a[12],a[13],a[6],a[7],a[8],a[9]);
}
return 0;
}
注意:
只要遇到字符就要想到getchar 這個(gè)字符有時(shí)候會(huì)吃掉‘\n’導(dǎo)致字符串不完整 很可怕的
其次這道題只能用字符變量 因?yàn)樯矸葑C號(hào)碼是連續(xù)的 所以整形沒(méi)法分離出來(lái)
最后要注意字符串不能賦值 字符串不能賦值 字符串不能賦值?。?!
要賦值就用strcpy(a,b);!??!