本人在vs2010上能运行出来,oj的时候显示runtimeerror,不知道是哪里的问题
题目描述:
在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易的识别。我们给出一种最简的的加密方法,对给定的一个字符串,把其中从a-y,A-Y的字母用其后继字母替代,把z和Z用a和A替代,则可得到一个简单的加密字符串。
输入:
可能有多组测试数据。每组测试数据的第一行是字符串的数目n, (也要使用get(s)读取字符串,再用n=atoi(s)获得整数数值),其余n行每行一个字符串,用gets(s)方式读取这一行字符串.每个字符串长度小于80个字符。
输出:
对于每组数据,输出每行字符串的加密字符串。
样例输入:
1
Hello! How are you!
样例输出:
Ifmmp! Ipx bsf zpv!
代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){
int n,i,j,m;
char str[2];
char **p;
while((n=atoi(gets(str)))!=EOF){
p=(char**)calloc(n,80*sizeof(char));
for(i=0;i<n;i++)
p[i]=(char*)calloc(80,sizeof(char));
for(i=0;i<n;i++)
gets(p[i]);
i=0;
while(i<n){
m=strlen(p[i]);
for(j=0;j<m;j++){
if((p[i][j]>=”a”&&p[i][j]<=”z”)||(p[i][j]<=”Z”&&p[i][j]>=”A”)){
if(p[i][j]==”Z”)
p[i][j]=”A”;
else if(p[i][j]==”z”)
p[i][j]=”a”;
else p[i][j]++;}
}
i++;
}
for(i=0;i<n;i++)
printf(“%s\n”,p[i]);
}
return 0;
}
题目描述:
在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易的识别。我们给出一种最简的的加密方法,对给定的一个字符串,把其中从a-y,A-Y的字母用其后继字母替代,把z和Z用a和A替代,则可得到一个简单的加密字符串。
输入:
可能有多组测试数据。每组测试数据的第一行是字符串的数目n, (也要使用get(s)读取字符串,再用n=atoi(s)获得整数数值),其余n行每行一个字符串,用gets(s)方式读取这一行字符串.每个字符串长度小于80个字符。
输出:
对于每组数据,输出每行字符串的加密字符串。
样例输入:
1
Hello! How are you!
样例输出:
Ifmmp! Ipx bsf zpv!
代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){
int n,i,j,m;
char str[2];
char **p;
while((n=atoi(gets(str)))!=EOF){
p=(char**)calloc(n,80*sizeof(char));
for(i=0;i<n;i++)
p[i]=(char*)calloc(80,sizeof(char));
for(i=0;i<n;i++)
gets(p[i]);
i=0;
while(i<n){
m=strlen(p[i]);
for(j=0;j<m;j++){
if((p[i][j]>=”a”&&p[i][j]<=”z”)||(p[i][j]<=”Z”&&p[i][j]>=”A”)){
if(p[i][j]==”Z”)
p[i][j]=”A”;
else if(p[i][j]==”z”)
p[i][j]=”a”;
else p[i][j]++;}
}
i++;
}
for(i=0;i<n;i++)
printf(“%s\n”,p[i]);
}
return 0;
}
解决方案
20
#include<stdio.h> #include<string.h> #include<stdlib.h> int main() { int n,i,j,m; char str[81]; while((n=atoi(gets(str)))!=0) { i=0; while(i<n) { gets(str); m=strlen(str); for(j=0;j<m;j++) { if((str[j]>="a"&&str[j]<="z")||(str[j]<="Z"&&str[j]>="A")) { if(str[j]=="Z") str[j]="A"; else if(str[j]=="z") str[j]="a"; else str[j]++; } } i++; printf("%s\n",str); } } return 0; }