感谢大佬666 2022-08-14 01:30 采纳率: 83%
浏览 60
已结题

python转c,需要耐心的高瘦

def rotate(m, n, k):
    if k == 0: return m
    res = []
    for i in range(n):
        a = ''
        if k == 2:
            a = m[n-i-1][::-1]
        else:
            for j in range(n):
                if k == 1:
                    a += m[j][n-i-1]
                else:
                    a += m[n-j-1][i]
        res.append(a)
    return res
 
T = int(input())
res = []
for i in range(T):
    n, k = map(int, (input().split()))
    m = []
    for j in range(n):
        m.append(input())
    res.append(rotate(m, n, k%4))
for i in res:
    for j in i:
        print(j)

题目链接:
http://t.csdn.cn/XVfZm?spm=1005.2026.3001.5622

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2022-08-14 22:04
    关注

    供参考:

    #include <stdio.h>
    #include <stdlib.h>
    void rotate(char* x, int n, int k){
        char* y = (char*)malloc(sizeof(char)*n*n);
        for(int i=0; i < n * n; i++)
            y[n * n - (i % n)* n - n + i/n] = x[i];
        for(int i=0; i < n * n; i++)
            x[i] = y[i];
        free(y);
        k--;
        if (k > 0) rotate(x, n, k);
    }
    int main() {
        int  T, n, k, i;
        scanf("%d", &T);
        while (T--){
              scanf("%d%d", &n, &k);
              char *a = (char*)malloc(sizeof(char)*n*n);
              for (i = 0;i < n * n; i++)
                   scanf(" %c", &a[i]);
              rotate(a, n, k % 4);
              for (i = 0; i < n * n; i++){
                   printf("%c", a[i]);
                   if ((i+1) % n == 0)
                      printf("\n");
              }
              free(a);
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月22日
  • 已采纳回答 8月14日
  • 创建了问题 8月14日

悬赏问题

  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址