C语言练习题之标准电话号码(MOOC)

标准电话号码(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;
}

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值