T、DZ 2022-12-10 22:45 采纳率: 83.3%
浏览 45
已结题

C语言 PTA 方阵循环右移

问题遇到的现象和发生背景

img

img

遇到的现象和发生背景,请写出第一个错误信息

img

img

用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
#include <stdio.h>
int main()
{
    int m,n,i,j,J;

    scanf("%d%d\n",&m,&n);
    int a[n][n];
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
        {
            J=(m%n+j)%n;
            a[i][J]=a[i][j];
        }
    }
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
        {
            printf("%d ",a[i][j]);
        }
        printf("\n");
    }
    return 0;
}
运行结果及详细报错内容
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%

我的思路是用数学公式表示平移的规律,我在草稿纸上写了很多次去验证我的公式“J=(m%n+j)%n”,都是可行的,就是运行时一大堆错误,搞不懂。
我发现题目好像也有问题,他说将第0列变为第n-m列,如果是这样的话,他测试的第一行的1就会到第一列,而不是样例输出中的第二列。 爪麻……

我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
  • 写回答

1条回答 默认 最新

  • 真相重于对错 2022-12-11 09:28
    关注

    你这个肯定有问题,你复制过去了,但原来的数据存到哪里了?循环的话原来的数据都要存在,只是位置发生改变。所以你的代码是错误的。简单写的话,应该再开一个与原数组一样大的数组,然后计算位置,比原数据写入新数组位置中。

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

报告相同问题?

问题事件

  • 系统已结题 12月19日
  • 已采纳回答 12月11日
  • 修改了问题 12月10日
  • 修改了问题 12月10日
  • 展开全部

悬赏问题

  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!