UVA 10082 WERTYU

来源:互联网 发布:mac系统邮件客户端 编辑:程序博客网 时间:2024/05/16 01:32

   这也算是一道水题吧,怎么说呢,就是一个灵活性的误差来源,制造误差的原因应该就是错位引起的,只要认真读好题,知道是哪一位发生了错位,错位后与错位前的关系,然后开两个字符数组,分别从头到尾依次比较就好了,遇到相同的就不断的更新,,,,应该就能很好的AC了。。。。


# include<cstdio># include<iostream>using namespace std;# define MAX 1000+10int main(void){  int i,j,a,b,m;  char str1[MAX];//存放待输入的字符串  char str2[]={'`','1','2','3','4','5','6','7','8','9',                '0','-','=','Q','W','E','R','T','Y','U',                'I','O','P','[',']','\\','A','S','D','F',                'G','H','J','K','L',';','\'','Z','X','C',                'V','B','N','M',',','.','/'};  b=sizeof(str2);//因为一个字符占一个字节,所以说sizeof的字节数就是字符的长度  //cout<<b<<endl;  while(scanf("%c",&str1[0])==1)   {     for(i=1;str1[i-1]!='\n';i++)        scanf("%c",&str1[i]);     a=i-1;//不要写成a=sizeof(str1)的形式,否则后面会有乱码     for(i=0;i<a;i++)       {         for(j=0;j<b;j++)           {             if( str1[i]==str2[j] )               str1[i]=str2[j-1];//其实我们需要的是j-1位的字符           }       }     for(i=0;i<a;i++)        printf("%c",str1[i]);     printf("\n");      }  return 0;}



在代码的字里行间里,我还写出了很多的注释,都是对每个相应步骤所做出来的调整,认真看看都能看懂,难度不大。

还应该注意一点,,在把键盘上的所有字符复制到字符串的过程中,一定要注意有些字符的输入和输出相对应,比如说 键盘上的 \,输入到字符串中就应该是 ‘ \\ ’。。。

0 0
原创粉丝点击