标准电话号码(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<stdio.h>
#include<string.h>
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]={'\0'};
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("%c\n",Number[i].a);
// printf("%c\n",Number[i].b);
// printf("%c\n",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;
}