heatherill 2021-12-01 10:10 采纳率: 62.5%
浏览 59
已结题

为何无法输出字符数组

原题

7-5 凯撒密码 (20 分)
为了防止信息被别人轻易窃取,需要把电码明文通过加密方式变换成为密文。输入一个以回车符为结束标志的字符串(少于80个字符),再输入一个整数offset,用凯撒密码将其加密后输出。恺撒密码是一种简单的替换加密技术,将明文中的所有字母都在字母表上偏移offset位后被替换成密文,当offset大于零时,表示向后偏移;当offset小于零时,表示向前偏移。

输入格式:
输入第一行给出一个以回车结束的非空字符串(少于80个字符);第二行输入一个整数offset。

输出格式:
输出加密后的结果字符串。

代码
#include<stdio.h>
int main()
{
    char a[81];
    int i,m,flag=0,n;
    scanf("%c",&a[0]);
    for(i=1;a[i-1]!='\n';i++)
    {
        scanf("%c",&a[i]);
    }
    scanf("%d",m);
    n=i-1;
    if(m<0)
    {
        flag=1;
    }
    m=m%26;
        for(i=0;i<n;i++)
    {
        if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))
        a[i]=a[i]+m;
        if((a[i]<'a'||a[i]>'z')&&(a[i]<'A'||a[i]>'Z'))
        flag==1?a[i]=a[i]+26:a[i]=a[i]-26;
    }
    for(i=0;i<n;i++)
    {
        printf("%c",a[i]);
    }
    return 0;
}

运行结果及报错内容

运行无输出,PTA出现段错误

  • 写回答

1条回答 默认 最新

  • 索利亚噶通 2021-12-01 10:14
    关注

    你第十行的输入少了一个 & 符号

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月1日
  • 已采纳回答 12月1日
  • 创建了问题 12月1日

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算