如下两个代码:
A:
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
char a[100];
int n;
int main(){
scanf("%d",&n);
n%=26;
getchar();
scanf("%s",&a);
for(int i=0;i<100;i++){
if(a[i]+n>=128){
a[i]=a[i]-26+n;
continue;
}
if(a[i]>=97&&a[i]<=122){
a[i]=a[i]+n;
}
a[i]=(a[i]>122)?(a[i]-26):(a[i]);
}
printf("%s",a);
}
这个可以通过 但一变成:
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
char a[100];
int n;
int main(){
scanf("%d",&n);
n%=26;
getchar();
gets(a);
for(int i=0;i<100;i++){
if(a[i]+n>=128){
a[i]=a[i]-26+n;
continue;
}
if(a[i]>=97&&a[i]<=122){
a[i]=a[i]+n;
}
a[i]=(a[i]>122)?(a[i]-26):(a[i]);
}
puts(a);
}
就不行 区别仅是用gets和puts读取输出和用scanf与printf的读取输出 求问为什么会这样?以后有什么类似要注意的地方吗?谢谢!