在森林中麋了鹿 2020-11-27 21:08 采纳率: 100%
浏览 21
已结题

大佬们帮我看看,这哪出问题了

#include<stdio.h>
#include<string.h>
const char a[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
const char b[26]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'}; 
int main()
{
	int i,j,t;
     char c[105];
	 gets(c);
	 for(i=0;i<strlen(c);i++)
	 {
	 	for(j=0;j<=26;j++)
	 	{
	 		 if((c[i]==a[j]||c[i]==b[j])&&(j<2))
			 {
			    if(c[i]==a[j])
				 c[i]=a[j+24];
			    else
			     c[i]=a[j+24];
			 }
	 		else if((c[i]==a[j]||c[i]==b[j])&&j>=2)
	 		 {
	 			if(c[i]==a[j])
	 			c[i]=a[j-2];
	 			else
	 			c[i]=b[j-2];
			 }	
		 }
	  }	
	  for(i=0;i<strlen(c);i++)
	  printf("%c",c[i]);
	  return 0;
} 

输入ab 的正常输出情况是yz,可这为啥是wx啊?

  • 写回答

1条回答 默认 最新

  • qtchen_1988 2020-11-28 12:31
    关注

    你的程序有问题;

    1.判断条件 j<=26应该 j<26;

    if(c[i]==a[j])
    c[i]=a[j+24];
    else
    c[i]=a[j+24];

    2.这个判断没意义

    3.当j<2时添加满足第一个时,a[i]的值已经变了,你以为还是a,其实a[i]已经是y了;这时应该break掉第一个循环

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 随机森林与房贷信用风险模型
  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备