m0_61138145 2022-04-27 21:43 采纳率: 88.2%
浏览 29
已结题

这个数组回形遍历是哪里出错了


#include <stdio.h>

int main(void) {
    int arr[102][102];
    int row, col;    //右上边界标记(行列数)
    scanf("%d %d", &row, &col);
    //存数
    for (int i = 0; i < row; i++) {
        for (int j = 0; j < col; j++) {
            scanf("%d", &arr[i][j]);
        }
    }
    //取数   当到达最后一个数,结束
    int i = 0, j = 0;    //总数标记
    int x = 0, y = 0;    //左下边界标记
    int k = 1;    //方向标记
    int t = 1;
    int all = row * col;
    for (int m = 0; m < all; m++) {
        if (k == 1) {    //向右
            k++;
            for (; j < col; j++)
                printf("%d\n", arr[i][j]);
            j--;
            col -= 1;
        } else if (k == 2) {    //向下
            i++;
            k++;
            for (; i < row; i++)
                printf("%d\n", arr[i][j]);
            i--;
            row -= 1;
        } else if (k == 3) {    //向左
            j--;
            k++;
            for (; j >= y; j--)
                printf("%d\n", arr[i][j]);
            j++;
            y++;
        } else if (k == 4) {    //向上
            i--;
            k++;
            for (; i > x; i--)
                printf("%d\n", arr[i][j]);
            i++;
            x++;
        } else if (k == 5) {    //向右(非第一行)
            j++;
            k = 2;
            for (; j < col; j++)
                printf("%d\n", arr[i][j]);
            j--;
            col -= 1;
        }
    }
}

img


这个是题目,其他情况下都没问题,就是当row<col的时候会出现多输出了前一个数,没找出来是哪里的问题

  • 写回答

2条回答 默认 最新

  • 关注

    代码测试正常啊.有什么问题吗?

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月5日
  • 已采纳回答 4月27日
  • 创建了问题 4月27日

悬赏问题

  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序