#include <stdio.h>
int main(){
char s[100],c;
int i=0,n,cnt=0;
while(1){
scanf("%c",&c);
if(c == '\n') break;
s[cnt++] = c;
}
printf("请输入N的值:");
scanf("%d",&n);
for(i=0;i<cnt;i++){
if((s[i]-'A'>=0 && s[i]-'Z'<=0) || (s[i]-'a'>=0 && s[i]-'z'<=0)){
if(s[i]-'A'>=0 && s[i]-'Z'<=0){
s[i] = (s[i]-'A'+n)%26 + 'A';
}
else{
s[i] = (s[i]-'a'+n)%26 + 'a';
}
}
}
s[cnt] = '\0';
puts(s);
return 0;
}
求求构思思路
你这代码输出也没错,你的困惑是什么
#include <stdio.h>
int main(){
char s[100],c;
int i=0,n,cnt=0;
while(1){
scanf("%c",&c);
if(c == '\n') break;
s[cnt++] = c;
}
printf("请输入N的值:");
scanf("%d",&n);
for(i=0;i<cnt;i++){
if((s[i]-'A'>=0 && s[i]-'Z'<=0) || (s[i]-'a'>=0 && s[i]-'z'<=0)){
if(s[i]-'A'>=0 && s[i]-'Z'<=0){
s[i] = (s[i]-'A'+n)%26 + 'A';
}
else{
s[i] = (s[i]-'a'+n)%26 + 'a';
}
}
}
s[cnt] = '\0';
puts(s);
return 0;
}
运行结果: