runtime error 问题

sky?? sky?? 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我在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;
}

...全文

相关推荐

评论 1
收藏 已收藏
分享
返回顶部
sky??
C语言 70,040 成员 243,237 内容