gpt4 book ai didi

c - 气泡排序二维数组-C

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

我正在尝试将Bubblesort用于最大尺寸为[100] [2]的自定义尺寸2D数组,用于2D数组。我是一个初学者,所以我不太擅长正确设置代码格式,所以散光会很棒。

我的输入

How many items of data do you wish to enter? 4
Please enter in the X coordinate: 4
Please enter in the Y coordinate: 4
Please enter in the X coordinate: 3
Please enter in the Y coordinate: 3
Please enter in the X coordinate: 2
Please enter in the Y coordinate: 2
Please enter in the X coordinate: 1
Please enter in the Y coordinate: 1


这样就可以打印出您希望从自定义数组输入中输入的数字。

输出(旨在比较每个数组并切换到升序)。

Printing in Ascending Order:
[4][3]
[3][3]
[3][3]


它打印3个数组而不是4个,并且不打印出我输入的任何数字。
 所以
但是有人能对此有所启发吗?特别是Bubblesort函数。

int main()
{
int arrayHeight, array[100][2];
printf ("***** Bubble Sort ***** \n");
InputArray(array, arrayHeight);
}

int InputArray(int array[100][2], int arrayHeight, int swap)
{
int i, xCoord, yCoord;
printf("\n How many items of data do you wish to enter? ");
scanf("%d",&arrayHeight);
for(i=0; i<arrayHeight; i++)
{
printf("Please enter in the X coordinate: ");
scanf("%d", &xCoord);
printf("Please enter in the Y coordinate: ");
scanf("%d", &yCoord);
array[i][0] = xCoord;/* Name of XCoordinate and position within Array*/
array[i][1] = yCoord;/*Name of YCoordinate and position within Array*/
}
DisplayArray(array, arrayHeight);
}

int DisplayArray(int array[100][2], int arrayHeight, int swap)
{
int i, j;
printf("\n The 2-D Array contains : \n");
for(i=0; i<arrayHeight; i++)
{
printf("[%d][%d]\n\r", array[i][1], array[i][0]);
}
BubbleSort(array, arrayHeight);
}

int BubbleSort(int array[100][2], int arrayHeight)
{
int swap, i, j, k;
printf("\n Printing in Asending Order: ");
for (i = 0; i <arrayHeight-1; i++)
{
if (array[i][0] > array[i][1 + 1])
{
array[1][i] = array[1][0+1];
swap = array[1][i];
array[i][1 + 1];
printf("\n [%d][%d] ", array[i][0], array[1][i]);
}
}
}

最佳答案

我不知道您要如何使用BubbleSort函数。

但是只是为了正确处理一些事情:

if (array[i][0] > array[i][1 + 1]) 


这不起作用,您的数组已初始化为“ int array [100] [2]”。按照惯例,应该在第二个方括号中的最高数字是1。(顺便说一下,1 + 1 = 2)

array[1][i] = array[1][0+1];
swap = array[1][i];


C是按顺序执行代码的,因此,即使在将原始值保存到'swap'变量中之前,array [1] [i]也会被array [1] [0 + 1]覆盖。

array[i][1 + 1];


这行代码似乎没有执行任何操作。

如果您可以判断是要按“元素”还是“线”(即2D数组中的每个数组)进行排序,也许我们可以帮助您正确解决问题。

关于c - 气泡排序二维数组-C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49806513/

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