再问一下,麻烦解释一下这个C程序?????

来源:百度知道 编辑:UC知道 时间:2024/05/10 21:49:40
#include<stdio.h>
void main(){
char c;
while(scanf("%c",&c),c!='.')
{
if(c>='a'&&c<'z')
c+=1;
if(c=='z')
c='a';
printf("%c",c);
}
}

当输入:"AB20dfz5."时,输出的结果是???

我运行了,结果是AB20ega5,但是AB怎么会原样输出呢?不是应该是65和66吗??

while(scanf("%c",&c),c!='.')相当于
scanf("%c",&c);
while(c!='.')
{
......;
scanf("%c",&c);
}
这个程序是把输入的小写字母的asc码加1输出。比如输入的是a,输出b,输入b,输出c,如果输入z,输出a。如果输入的不是小写字母,则原样输出。直到输入"."为止

快要疯了,这叫代码?谁告诉你这么写?

while(scanf("%c",&c),c!='.')

我是一程序员.6年了

C是区别大小字母的,你只处理了小写字母,当然大写字母原样输出了!!

这个写法是很常见的啊...楼上少见多怪了.

输出的应该是
AB20ega5

注意最后的时候是printf("%c"), 这里的%c是输出char对应的字符的

你选择输出的函数格式为%c,也就是说按asc码所对应的字符输出,65和66对应的asc码为A和B,所以就输出A和B咯