标准电话号码(10分)
题目内容:
标准电话号码键盘包括从2-9的按键。2-9的每个数字都有三或四个与之关联的字母,如下表所示:
数字 字母
2 ABC
3 DEF
4 GHI
5 JKL
6 MNO
7 PQRS
8 TUV
9 WXYZ
许多人觉得记住电话号码很困难,所以他们使用数字与字母的对应关系来产生对应电话号码的7个字母的单词,例如,某人的电话号码是6862377,按照上表的对应关系得到的7字母单词可以是NUMBERS。
请编写一个程序,当给定一个7个字母的单词时,输出这串字母所对应的电话号码。注意不要使用电话号码中的数字0和1。
输入格式:
一个大写单词形如NUMBERS
输出格式:
对应的号码形如6862377,结尾无空行和空格
输入样例:
NUMBERS
输出样例:
6862377
时间限制:500ms内存限制:32000kb
无比丑陋的强行靠答案代码
难以强行羞耻解说。。。
#include#include struct Words { char a; char b; char c; char d; }; struct Words Number[8]; int main(void) { // struct Words // { // char a; // char b; // char c; // // }Number[8]; int i; int j; char TPNumber[8]={' '}; for(i=0;i<5;i++) { Number[i].a = 'A'+3*i; Number[i].b = 'B'+3*i; Number[i].c = 'C'+3*i; Number[i].d = 'z'; // printf("%cn",Number[i].a); // printf("%cn",Number[i].b); // printf("%cn",Number[i].c); } // printf("%d",i); Number[i].a = 'P'; Number[i].b = 'Q'; Number[i].c = 'R'; Number[i].d = 'S'; i++; Number[i].a = 'T'; Number[i].b = 'U'; Number[i].c = 'V'; Number[i].d = 'z'; i++; Number[i].a = 'W'; Number[i].b = 'X'; Number[i].c = 'Y'; Number[i].d = 'Z'; // printf("%d",i); for(j=0;j<8;j++) { scanf("%c",&TPNumber[j]); } for(i=0;i<8;i++) { // int one = Number[i].a; // int two = Number[i].b; // int three = Number[i].c; for(j=0;j<8;j++) { if(TPNumber[i]==Number[j].a) printf("%d",j+2); if(TPNumber[i]==Number[j].b) printf("%d",j+2); if(TPNumber[i]==Number[j].c) printf("%d",j+2); if(TPNumber[i]==Number[j].d) printf("%d",j+2); } } return 0; }



