大神看看我的这个C语言程序错哪儿了。

#include<stdio.h>voidjiami(chara[],charb[]);intmain(){chara[200],b[200];printf("请输入字符... #include <stdio.h>
void jiami(char a[],char b[]);
int main()
{
char a[200],b[200];
printf("请输入字符串进行加密\n");
gets(a);
jiami(a,b);
puts(b);
return 0;
}
void jiami(char a[200],char b[200])
{

puts(a);
int i=0;
while(a[i]!='\0')//注意斜杠n和斜杠0的区别
{
b[i]=a[i];
if(b[i]>='a' && b[i]<='z')
{
if(b[i]>='a' && b[i]<='x')
{
b[i]=b[i]+2;
i++;
}
if(b[i]>='y' && b[i]<='z')
{
b[i]=b[i]-24;
i++;
}
}
else if(b[i]>='A' && b[i]<='Z')
{
if(b[i]>='A' && b[i]<='X')
{
b[i]=b[i]+2;
i++;
}
if(b[i]>='Y' && b[i]<='Z')
{
b[i]=b[i]-24;
i++;

}
}
}
b[i]=0;
}
输不出空格
展开
 我来答
匿名用户
2014-12-13
展开全部
缺少一行,注意位置

else i++;

}

b[i]=0;

}
追问
程序改对了。 但是有点不明白为什么这么改。大神就赐教。。
追答
while(a[i]!='\0')
{
b[i]=a[i];
后面两种情况I++, 其他没有i++,所以是死循环。
}
iguoping
2014-12-13 · TA获得超过3638个赞
知道小有建树答主
回答量:412
采纳率:57%
帮助的人:208万
展开全部
感觉你这个函数写得有问题,我复制过去测试,什么结果也没有。你的加密函数有问题。
追问
没问题啊
追答
你的代码写的很乱,if一大堆,可读性非常差,我给你改成这样,你看看
#include
void jiami(char a[], char b[]);
int main()
{
char a[200], b[200];
printf("请输入字符串进行加密\n");
gets(a);
jiami(a, b);
puts(b);
return 0;
}

void jiami(char *a, char *b)
{
int i = 0;
while (a[i]!='\0')
{
if ((a[i] >= 'A' && a[i] = 'a' && a[i] 'Z' && b[i] 'z')
{
b[i] -= 26;
}

}
else b[i]=a[i];
i++;
}
b[i]=0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ylcqucc
2014-12-13 · TA获得超过1435个赞
知道小有建树答主
回答量:862
采纳率:0%
帮助的人:324万
展开全部

追问
就是i++的那一段  为啥没有就会陷入死循环呢。。
追答
如果没i++,那么a[i]的值就不会改变,当然就是死循环了呀

除非a[0]取的第一个字符就是'\0',因为i的初值为0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式