Manchester


私信TA

用户名:wenyajie

访问量:312825

签 名:

在历史前进的逻辑中前进,这个逻辑就是人心向背的逻辑

等  级
排  名 1
经  验 62751
参赛次数 1
文章发表 188
年  龄 0
在职情况 学生
学  校 Xiamen University
专  业 计算机科学

  自我简介:

在历史前进的逻辑中前进,这个逻辑就是人心向背的逻辑

解题思路:
①:因为a的ascii码为97,z的ascii码为122,设输入的字符为x

②:根据题目字符到a的距离与其反码到z的距离相等

③:所以x的反码y='z'-(x-'a')

④:对于大写字母同理反码y='Z'-(x-'A')

⑤:若输入的字符x不是字母,则输出它本身


注意事项:
输入仅有一个字符且改字符为感叹号结束,在循环里面加上结束输入判断

即:如果输入的字符只有一个且为'!',则结束

即:要注意的的是,假如输入了:!AACFN

输出应该为:!ZZXUM

不能直接结束

 while(gets(A)!=NULL)
      {
         if(strlen(A)==1&&A[0]=='!')
            break;
           out_putReverse(A);
      }
      
      /*或者这样写也对*/
       while(gets(A)!=NULL&&!(A[0]=='!'&&strlen(A)==1))
      {
           out_putReverse(A);
      }

不可以这样写

 while(gets(A)!=NULL&&A[0]!='!')
      {
           out_putReverse(A);
      }
      /*这样写结提交答案错误*/
     /* 因为输入!AACFN就直接结束了*/


参考代码:

#include<stdio.h>
#include<string.h>

void out_putReverse(char *A);
/*--------------------------------------*/
int main()
{

   char A[81];

    while(gets(A)!=NULL&&!(A[0]=='!'&&strlen(A)==1))
      {
           out_putReverse(A);
      }
return 0;
}

/*--------------------------------------*/
void out_putReverse(char *A)
{
     for(int i=0;i<strlen(A);i++)
       {
          if(A[i]>='a'&&A[i]<='z')
            printf("%c",'z'-(A[i]-'a'));
              else
              if(A[i]>='A'&&A[i]<='Z')
               printf("%c",'Z'-(A[i]-'A'));
                 else/*如果不是字母则直接输出*/
                 printf("%c",A[i]);

       }
       /*最后换行*/
       printf("\n");
return ;
}

别忘点赞哦-.-

 

0.0分

6 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区

#include<stdio.h>
#include<string.h>
int main()
{
	char a[100];
	int count=0;
	while(gets(a))
	{
	
		int i,len;
		len=strlen(a);
		for(i=0;i<len;i++)
		{
			if(a[i]=='!')
			{
				count++;
			}
		}
		if(count==len)
		{
			return 0;
		}
		for(i=0;i<len;i++)
		{
			if('a'<=a[i]&&a[i]<='z')
			{
			int len1=a[i]-'a';
			a[i]='z'-len1;
		     }
		     
			  if('A'<=a[i]&&a[i]<='Z')
		     {
		     	int len2=a[i]-'A';
		     	a[i]='Z'-len2;
		    
			 }
			printf("%c",a[i]);
		}
	printf("\n");
			count=0;
	}
	return 0;
}
楼主为什么我这个过不了啊
2019-08-05 17:13:13
  • «
  • 1
  • »