小明的烦恼

来源:互联网 发布:中国唯一拥有氢弹知乎 编辑:程序博客网 时间:2024/04/29 00:16

小明的烦恼

时间限制:3000 ms  |  内存限制:65535 KB
难度:1
描述
小明最近接到了一个棘手的任务,他们公司有一个电话簿.但是这是一个奇怪的电话簿,因为它不是用数字记录电话号码,而是用数字键上所对应的字母来记录电话号码(2-abc,3-def,4-ghi,5-jkl,6-mno,7-pqrs,8-tuv,9-wxyz),电话号码只有11位。现在你的任务就是帮小明写一个程序来把这些字母的电话号码转化成数字的电话号码。
输入
第一行输入一个正整数T(0<T<=100),表示测试数据的组数
每组测试数据只有一行,输入一串字符(字符长度为11);
输出
每组输出占一行,输出数字的电话号码
样例输入
3phqghumeaylnlfdxfircvscxggbwkfnqd
样例输出
747448632956533934728729442953673

 

#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("");}}