gpt4 book ai didi

c - 二维数组的升序,不起作用..?

转载 作者:行者123 更新时间:2023-11-30 16:33:50 25 4
gpt4 key购买 nike

我正在尝试输出我的2D数组按升序排列。

我已经将其输出为用户输入的顺序。但无法将其打印为升序。

  • 有人可以帮忙解决这个问题或知道解决方案吗?我的代码如下,适用于任何有关代码的问题。

    int main() {
    /* 2D array declaration and size of each Array in the Programme*/
    int Array[2][3];
    printf ("***** Bubble Sort Assessment 2 ***** \n");
    /*Counter variables for the loop*/
    int i, j;
    for(i=0; i<2; i++)
    {
    for(j=0; j<3; j++)
    {
    printf("Enter numeric values for each Array [%d][%d]: \n", i, j);
    scanf("%d", &Array[i][j]);
    }
    }
    /*Displaying array elements*/
    printf("\n The 2-D Array contains : \n");
    for(i=0; i<2; i++)
    {
    for(j=0; j<3; j++)
    {
    printf("%d " , Array[i][j]);
    if(j==2)
    {
    printf("\n");
    }
    }
    }
    printf("\n\nAscending : ");
    for (int i = 0; i < 2; i++)
    {
    printf(" %d ", a[i]);
    }
    for (int i = 0; i < 2; i++)
    {
    for (int j = 0; j < 3; j++)
    {
    if (a[j] < a[i])
    {
    int tmp = a[i];
    a[i] = a[j];
    a[j] = tmp;
    }
    }
    }
    return 0;
    }

最佳答案

首先使用冒泡排序算法

for(int i=0; i<size; ++i)
{
for(int j=i+1; j<size; ++j)
{
if(a[i]>a[j]))
{
int temp=a[i];
a[i]=array[j];
a[j]=temp;
}
}
}

然后按升序打印数组。

尝试应用你自己的方式,你可以使用数组的一些特性,例如数组连续性。

int *ptr=a; 

相同
*(ptr+i), *(ptr+j)

关于c - 二维数组的升序,不起作用..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49566443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com