关于#c语言#的问题:输出数组元素的格式为”%5d”

int a[5 ][4 ]=2,5,-86,31 32,1,0,798 3,4,5,6 25,61,33,92 -51,21,37,96 这个数组中,一共有五行,怎样将任意两行交换,然后输出。输入格式为”%d%d”,输出数组元素的格式为”%5d”。

#include <stdio.h>

#define ROWS 5
#define COLS 4

void swap_rows(int arr[ROWS][COLS], int m, int n) {
    int temp[COLS];
    for (int i = 0; i < COLS; i++) {
        temp[i] = arr[m][i];
        arr[m][i] = arr[n][i];
        arr[n][i] = temp[i];
    }
}

int main() {
    int arr[ROWS][COLS] = {2,5,-86,31},{32,1,0,798},{3,4,5,6},{25,61,33,92},{-51,21,37,96}};
    printf("原始:\n");
    for (int i = 0; i < ROWS; i++) {
        for (int j = 0; j < COLS; j++) {
            printf("%2d ", arr[i][j]);
        }
        printf("\n");
    }
    printf("\n");
    int m, n;
    printf("输入m n");
    scanf("%d %d", &m, &n);
    swap_rows(arr, m - 1, n - 1);
    printf("交换后:\n");
    for (int i = 0; i < ROWS; i++) {
        for (int j = 0; j < COLS; j++) {
            printf("%2d ", arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}


仅供参考!谢谢!

img

img

img

#include<stdio.h>
#define  M 5
#define  N 4

int main(void)
{
    int a[M][N] = { 1, 2, 3, 4,
        5, 6, 7, 8,
        9, 10, 11, 12,
        13, 14, 15, 16,
        17, 18, 19, 20
    };

    // b,c表示b行与c行对调
    int b,c;
    do
    {
        scanf("%d%d", &b, &c);
    }
    while ((b < 1 || b > M) || (c < 1 || c > M));

    // 调换
    if (c != b)
    {
        int tmp;
        for (int i = b - 1, j = c - 1, k = 0; k < N; k++)
        {
            tmp = a[i][k];
            a[i][k] = a[j][k];
            a[j][k] = tmp;
        }
    }

    // 输出调换后的数组
    for (int i = 0; i < M; i++)
    {
        for (int j = 0; j < N; j++)
        {
            printf("%5d", a[i][j]);
        }
        puts("");
    }


    return 0;
}


不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7603321
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:四种方法解决微信小程序设置背景图片,哪种最好?
  • 除此之外, 这篇博客: C语言005:常见例题中的 1、通过冒泡排序算法对数组int a[8] ={25,24,12,76,101,96,28,-1}进行排序,要求:画出第一趟、第二趟排序之后数组的状态。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    参考答案:
    第一趟排序之后数组的状态:
    {24,12,25,76,96,28,-1,101}
    第二趟排序之后数组的状态:
    {12,24,25,76,28,-1,96,101}


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^