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

需要使用自定义函数实现:输入4个数按从小到大的顺序排好后输出(注意是先四个排序,然后按组存入二维数组中

img


)这个是我结合网上的答案弄的,后续不知道怎么改。i,j是原代码未知数。a,b,c,d,t这段是另一种方法的。
不能用冒泡法

排序函数里,你只需要传一个int数组,a,b,c,d直接从数组里取呀,排序函数里不需要在输入了呀

#include <stdio.h>

#define ROWS 4
#define COLS 4

int main(void) {
    int arr[ROWS][COLS];
    int i, j, temp;

    // 读入16个数
    for (i = 0; i < ROWS; i++) {
        printf("请输入第%d组数:", i+1);
        for (j = 0; j < COLS; j++) {
            scanf("%d", &arr[i][j]);
        }
    }

    // 对每一组数进行冒泡排序
    for (i = 0; i < ROWS; i++) {
        for (j = 0; j < COLS - 1; j++) {
            if (arr[i][j] > arr[i][j+1]) {
                temp = arr[i][j];
                arr[i][j] = arr[i][j+1];
                arr[i][j+1] = temp;
            }
        }
    }

    // 输出排序后的结果
    printf("排序后的结果:\n");
    for (i = 0; i < ROWS; i++) {
        printf("第%d组数:", i+1);
        for (j = 0; j < COLS; j++) {
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }

    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7586184
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:(c语言)输入一个数,将该数按原规律插入到有序数组中
  • 除此之外, 这篇博客: c语言单链表实现一元多项式相加算法中的 给定两个一元多项式,实现两个一元多项式的相加算法。提示:用一条单链表表示一个一元多项式,每个节点包含三个域:指数域、系数域和后继结点链。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    可直接运行

    #include <stdio.h>
    #include <stdlib.h>
    #include <malloc.h>
    struct Node;
    typedef struct Node *PNode;
    struct Node
    {
        int zhishu;
        int xishu;
        PNode next;
    };
    typedef struct Node *LinkList;
    LinkList createNullList_link(void)//创建空链表
    {
        LinkList llist = (LinkList)malloc(sizeof(struct Node));
        if(llist != NULL) llist -> next = NULL;
        else
        {
            printf("out of space!\n");
        }
        return llist;
    }
    PNode locate_link(LinkList llist,int zhishu)//求某元素的存储位置
    {
        PNode p;
        if(llist == NULL) return NULL;
        p = llist->next;
        while(p != NULL && p->zhishu!=zhishu)p=p->next;
        return p;
    }
    int insertPost_link(LinkList llist,PNode p,int zhishu,int xishu)//在p节点后添加新节点
    {
        PNode q = (PNode)malloc(sizeof(struct Node));
        if(q==NULL) {
            printf("out of space.");
            return 0;
        }
        else
        {
            q->zhishu=zhishu; 
            q->xishu=xishu;
            q->next=p->next;
            p->next=q;
            return 1;
        }
        
    }
    int main() 
    {
        LinkList a1 = createNullList_link();
        insertPost_link(a1,a1,1,4);
        PNode p1 = a1->next;
        insertPost_link(a1, p1, 0, 5);
        LinkList a2 = createNullList_link();
        insertPost_link(a2, a2, 1, 6);
        PNode p2 = a2->next;
        insertPost_link(a2, p2, 0, 3);
        //以上设置好了两个一元多项式
        PNode p11 = locate_link(a1,1);
        PNode p21 = locate_link(a2, 1);
        PNode p10 = locate_link(a1, 0);
        PNode p20 = locate_link(a2, 0);
        int xishu1 = p11->xishu + p21->xishu;
        int xishu0 = p10->xishu+p20->xishu;
        printf("the sum is %d x + %d",xishu1,xishu0);
        return 0;
    }
    
  • 以下回答来自chatgpt:

    不能解决该问题。参考资料与问题描述不符,无法给出代码实现。建议重新提供相关参考资料。


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