C语言编程,输入一个字符串,将出现中的大写字母循环右移5位; 请问我这样有什么不足吗?

#include <stdio.h>
#define N 10
main()
{int i;
char a[N];
for(i=0;i<N;i++)
{scanf("%c",&a[i]);
if(a[i]>='A'&&a[i]<='Z')
a[i]+=5;
if(a[i]>='Z')
a[i]-=26;
}
for(i=0;
i<N;i++)
printf("%c",a[i]);
getch();
}

第1个回答  2015-04-30
#include <stdio.h> 
#define N 10

int main() {
int i;
char a[N];
scanf("%s",a);
for(i = 0;a[i] != '\0';i++) {
if(a[i] >= 'A' && a[i] <= 'Z')
a[i] = (a[i] - 'A' + 5) % 26 + 'A';
}
printf("%s\n",a);
getchar();
return 0;
}

追问

请问一下这是什么意思?(a[i] = (a[i] - 'A' + 5) % 26 + 'A'; )

第2个回答  2015-04-30
这样写的话,非要输入10个字符才结束。本回答被提问者采纳
第3个回答  2015-04-30
很足了.....没什么错误
相似回答