【求助】这个程序输出有问题
题目:字符串字母大小写转换本题要求编写程序,对一个以“#”结束的字符串,将其小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其他字符不变输出。
输入格式:
输入为一个以“#”结束的字符串(不超过30个字符)。
输出格式:
在一行中输出大小写转换后的结果字符串。
输入样例:
Hello World! 123#
输出样例:
hELLO wORLD! 123
我编的程:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i=0,n=0;
char a[30];
char ch;
ch=getchar();
while(ch!='#'){
a[i]=ch;
n++;
i++;
ch=getchar();
}
for(i=0;i<n;i++){
if(a[i]>='a'&&a[i]<='z'){
a[i]=a[i]-32;
}
else if(a[i]>='A'||a[i]<='Z'){
a[i]=a[i]+32;
}
else{
a[i]=a[i];
}
}
for(i=0;i<n;i++){
printf("%c",a[i]);
}
return 0;
}
输入123#时输出的QRS,但是程序要求输出123。
如果可以的话,帮忙写一下错在哪,怎么修正,非常感谢了!!!!