c语言 自定义函数 主函数中输入4组共16个数,每组按从小到大排好后存入二维数组中

img


在csdn上面找过,没有跟这个要求比较像的。
因为平时做作业是从网上借鉴然后修改的,所以暂时没有思路。
运行环境vc6.0


#include <stdio.h>

// 对数组进行冒泡排序
void bubble_sort(int arr[], int size) {
    for (int i = 0; i < size - 1; i++) {
        for (int j = 0; j < size - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

int main() {
    int arr[4][4];

    // 读取16个数并存储到二维数组中
    printf("请输入16个数,每组4个数:\n");
    for (int i = 0; i < 4; i++) {
        for (int j = 0; j < 4; j++) {
            scanf("%d", &arr[i][j]);
        }
    }

    // 对每组数进行排序
    for (int i = 0; i < 4; i++) {
        bubble_sort(arr[i], 4);
    }

    // 打印排序后的二维数组
    printf("排序后的二维数组:\n");
    for (int i = 0; i < 4; i++) {
        for (int j = 0; j < 4; j++) {
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }

    return 0;
}

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7521574
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:CSDN第一篇博客-C语言链表操作
  • 除此之外, 这篇博客: csdn全站最精细入微的指针内容中的 1.1相关的练习题😍😍😍 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • #include <stdio.h>
    int main()
    {
        char str1[] = "hello bit.";
        char str2[] = "hello bit.";
        const char *str3 = "hello bit.";
        const char *str4 = "hello bit.";
        if(str1 ==str2)
     printf("str1 and str2 are same\n");
        else
     printf("str1 and str2 are not same\n");
           
        if(str3 ==str4)
     printf("str3 and str4 are same\n");
        else
     printf("str3 and str4 are not same\n");
           
        return 0;
    }
    

    在这里插入图片描述
    问题详解:
    1.由答案我们可以看出str1和str2是不同的,这是为什么呢,其实答案很好理解的,因为我们创建了两个不同的字符数组(他们连名字都不相同,那这两个数组怎么可能相同啊???),那么他们在内存中的空间位置肯定是不同的,而数组名代表首元素地址,两个不同的数组的首元素地址肯定也是不相同啊,那么自然str1肯定和str2是不相同的啦
    2.首先常量字符串要在内存中开辟空间存储它本身,那么我们有必要在内存中储存两个一模一样的东西吗?(c/c++会把常量字符串储存到单独的一个内存区域中) 当这两个指针指向同一个常量字符串时,实际上就是指向同一块儿地址**(指针就是地址,地址就是指针)**

  • 您还可以看一下 CSDN讲师老师的CSDN技术大会精选视频(限时观看)课程中的 迈向电商认知智能时代的基石:阿里巴巴电商认知图谱-朱其立小节, 巩固相关知识点

#include <stdio.h>  
  
void sort(int arr[], int n) {  
    int i, j, temp;  
    for (i = 0; i < n - 1; i++) {  
        for (j = 0; j < n - i - 1; j++) {  
            if (arr[j] > arr[j + 1]) {  
                temp = arr[j];  
                arr[j] = arr[j + 1];  
                arr[j + 1] = temp;  
            }  
        }  
    }  
}  
  
int main() {  
    int arr[4][4] = {0}; // 初始化为0  
    int i, j;  
    for (i = 0; i < 4; i++) {  
        for (j = 0; j < 4; j++) {  
            scanf("%d", &arr[i][j]);  
        }  
    }  
    sort(arr, 4); // 按从小到大排好后存入二维数组中  
    for (i = 0; i < 4; i++) {  
        for (j = 0; j < 4; j++) {  
            printf("%d ", arr[i][j]);  
        }  
        printf("\n");  
    }  
    return 0;  
}