heatherill 2021-12-01 11:27 采纳率: 62.5%
浏览 79
已结题

PTA实验报错,部分正确,不清楚错在哪里

原题

img

#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;
} 

提交结果

img

快崩溃了TnT

  • 写回答

1条回答 默认 最新

  • bekote 2021-12-01 15:00
    关注

    20行小写和大写判定时要分开
    Z ASCII是90,如果偏移量是7的话,答案应该是G,你的代码输出的是a

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

报告相同问题?

问题事件

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