您的位置:首页 > 其它

小明的烦恼

2012-11-12 20:33 302 查看

小明的烦恼

时间限制:3000 ms | 内存限制:65535 KB

[align=center]难度:1[/align]

描述 小明最近接到了一个棘手的任务,他们公司有一个电话簿.但是这是一个奇怪的电话簿,因为它不是用数字记录电话号码,而是用数字键上所对应的字母来记录电话号码(2-abc,3-def,4-ghi,5-jkl,6-mno,7-pqrs,8-tuv,9-wxyz),电话号码只有11位。现在你的任务就是帮小明写一个程序来把这些字母的电话号码转化成数字的电话号码。

输入 第一行输入一个正整数T(0<T<=100),表示测试数据的组数

每组测试数据只有一行,输入一串字符(字符长度为11); 输出 每组输出占一行,输出数字的电话号码 样例输入
3
phqghumeayl
nlfdxfircvs
cxggbwkfnqd

样例输出
74744863295
65339347287
29442953673


#include <stdio.h>
int main()
{
int T;
char a[12];
scanf("%d", &T);
while(T--)
{
scanf("%s", a);
for(int i = 0; i < sizeof(a); i++)
{
if(a[i]>='a'&&a[i]<='c') printf("2");
else if(a[i] >= 'd' && a[i] <= 'f') printf("3");
else if(a[i] >= 'g' && a[i] <= 'i') printf("4");
else if(a[i] >= 'j' && a[i] <= 'l') printf("5");
else if(a[i] >= 'm' && a[i] <= 'o') printf("6");
else if(a[i] >= 'p' && a[i] <= 's') printf("7");
else if(a[i] >= 't' && a[i] <= 'v') printf("8");
else if(a[i] >= 'w' && a[i] <= 'z') printf("9");
}
printf("\n");
}
return 0;
}


下面的是最优的程序,简单吧!!

#include<cstdio>
char str[20],nstr[30]="22233344455566677778889999";
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
scanf("%s",str);
for(int i=0;i!=11;i++)
putchar(nstr[str[i]-'a']);
puts("");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: