定义一个5行5列的二维数组,并动态赋值,将第3列的数组进行从小到大的排序

 我来答
寒曦的日常
推荐于2017-10-09 · TA获得超过350个赞
知道小有建树答主
回答量:190
采纳率:100%
帮助的人:215万
展开全部
#include <stdio.h>
#include <stdlib.h>

int cmp(const void* a, const void* b)
{
    return *(int*)a > *(int*)b;
}

int main()
{
    int arr[5][5];
    int tmp[5];
    int ct = 0;
    int i,j;
    printf("input 25 numbers: \n");
    for(i = 0; i < 5; i++)
    {
        for(j = 0; j < 5; j++)
        {
            printf("%d: ", ++ct);
            scanf("%d", &arr[i][j]);
        }
    }

    ct = 0;
    printf("the array is: \n");
    for(i = 0; i < 5; i++)
    {
        for(j = 0; j < 5; j++)
        {
            printf("\t%d", arr[i][j]);
            if(j == 2)
                tmp[ct++] = arr[i][j];
        }
        printf("\n");
    }

    ct = 0;
    qsort(tmp, 5, sizeof(int), cmp);
    printf("after the sort the second col, is: \n");
    for(i = 0; i < 5; i++)
    {
        for(j = 0; j < 5; j++)
        {
            if(j == 2)
                arr[i][j] = tmp[ct++];
            printf("\t%d", arr[i][j]);
        }
        printf("\n");
    }
    printf("\n");

    return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式