算法竞赛入门经典(第二版) | 程序3-6 WERTYU (UVa 10082)(常量数组)

题目描述:

输入一个按键盘顺序,向后错一位后敲出的字符串,输出本来想打出的句子, 且输入中不会出现不合法的字符,例如A。

Simple input:

O S, GOME YPFSU/

Simple ouput:

I AM FINE TODAY.

代码
#include <iostream>
#include <cstdio>

using namespace std ;

//定义常量数组  
char s[] = "`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./" ;   //注意这里的右斜要写作两个。

int main()
{
	int i ;
	char c ;
	while((c = getchar()) != EOF ) {
		for (i=1; s[i] && s[i]!=c; i++) ; 	//找错位后的字符在常量表的位置 
		if (s[i]) putchar(s[i-1]) ;
		else putchar(c) ; 				 	//如果没找到,则为空格,直接输出即可。 
	} 
	return 0 ;
 } 
收获

善用常量数组往往能简化代码,定义常量数组时无需指明大小,编译器会计算 。
拓展:声明一些自定义规则的常量数组,用以解题。 如:int a[10] = {1,2,3,4,5,6,7,8,9,0} ;

发布了27 篇原创文章 · 获赞 16 · 访问量 1956

猜你喜欢

转载自blog.csdn.net/weixin_43899069/article/details/104262076