You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言实现二维数组逆时针旋转k次编译报错问题求解

C语言矩阵逆时针旋转编译问题修复

报错根因

你收到的类型转换警告完全是传参错误导致的:
gridRotate函数第一个形参要求传入二维数组的首地址(类型为int (*)[4]),但你写的arr[ROW][COL]是尝试读取二维数组第4行第4列的int类型值,不仅下标越界(你定义的4行4列数组合法下标范围是0~3),类型也和形参要求完全不符,因此触发警告。
另外你的函数声明返回值为int,但函数内部没有返回任何数值,编译时会触发额外警告。

修复步骤

  • 修改main函数里的调用语句,直接传二维数组名作为参数:把gridRotate(arr[ROW][COL], 1);替换为gridRotate(arr, 1);
  • 修改函数返回值类型为void,适配无返回值的实现:将函数声明改为void gridRotate(int grid[ROW][COL], int k);,函数定义头同步改为void gridRotate(int grid[ROW][COL], int k)

修复后完整代码

#include <stdio.h>
#include <stdlib.h>
#define ROW 4
#define COL 4

void gridRotate(int grid[ROW][COL], int k);
int main() {
    int arr[ROW][COL] = {{1, 2, 3, 4},
                         {5, 6, 7, 8},
                         {9, 10, 11, 12},
                         {13, 14, 15, 16}};
    gridRotate(arr, 1);
    return 0;
}

void gridRotate(int grid[ROW][COL], int k){
    int rst=0, ren=ROW-1, cst=0, cen=COL-1;
    int p1, p2, p3, p4;
    int tempK =k;
    for (; rst < ren && cst < cen; rst++, ren--, cst++, cen--)
    {
        tempK = k % (((ren - rst) * 2 +(cen - cst)) * 2);
        for (int t = 0; t < tempK; t++)
        {
            p1 = grid[rst][cst];
            p2 = grid[ren][cst];
            p3 = grid[ren][cen];
            p4 = grid[rst][cen];
            for (int i = ren - 1; i > rst; i--)
                grid[i + 1][cst] = grid[i][cst];
            for (int i = cen - 1; i > cst; i--)
                grid[ren][i + 1] = grid[ren][i];
            for (int i = rst+1 ; i < ren; i++)
                grid[i - 1][cen] = grid[i][cen];
            for (int i = cst+1; i < cen; i++)
                grid[rst][i - 1] = grid[rst][i];

            grid[rst + 1][cst] = p1;
            grid[ren][cst + 1] = p2;
            grid[ren - 1][cen] = p3;
            grid[rst][cen - 1] = p4;
        }
    }
    for(int i=0; i<ROW; i++){
        for(int j=0; j<COL; j++){
            printf("%d  ",grid[i][j]);
        }
        printf("\n");
    }
}

运行效果

传入k=1时输出为逆时针旋转1个位置的4x4矩阵:

2  3  4  8  
1  7  11  12  
5  6  10  16  
9  13  14  15  

内容的提问来源于stack exchange,提问作者iamalaziz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:15:00