您好我正在尝试使用函数通过升序输出数组的内容,但函数不正确地工作到我的特定结果,特别是在Bubblesort函数内有人知道为什么吗?
我一直在试图解决这个问题很多个小时,所以一定要强调一下。 底部的注释是降序输出。 current output of Ascending Function
int main()
{
int arrayHeight, array[100][2], xCoord, yCoord, i;
printf ("***** Bubble Sort ***** \n");
printf("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;
array[i][1] = yCoord;
}
DisplayArray(array,arrayHeight);
Bubblesort (array, arrayHeight);
}
int DisplayArray(int array[100][2],int arrayHeight, int swap)
{
/*Displaying Array elements*/
int i, j;
printf("\n The 2-D Array contains : \n");
for(i=0; i<arrayHeight; i++)
{
printf("[%d][%d]\n\r", array[i][0], array[i][1]);
}
}
int BubbleSort(int array[100][2], int arrayHeight) /*Start of the Function Usage*/
{
/*Sorts the Array elements into appropriate chosen sorting order - Ascending*/
int swap, i, j;
/*for(k =0; k< arrayHeight; k++) {*/
for (i = 0; i <arrayHeight ; i++) {
for (j = i+1; j < 3; ++j) {
if (array[i][0] > array[i][1]) {
swap = array[i][0];
array[i][0] = array[i][1];
array[i][1] = swap;
}
}
}
("\n Printing in Asending Order: ");
for (i=0; i<arrayHeight; i++)
{
for (j=0; j<arrayHeight; j++)
{
printf("\n %d ", swap);
}
}
BubbleSort(array, swap);
}
for(k =0; k< 2; k++) {/* These lines of code sort out the stored array
number into the appropriate order - Descending
for (i = 0; i < 3; i++) {
for (j = i+1; j < 3; ++j) {
if (a[k][j] > a[k][i]) {
int swap = a[k][j];
a[k][j] = a[k][i];
a[k][i] = swap;
}
}
}
}
printf("\n Printing in Descending Order: ");
for (j=0; j<2; j++)
{
for (i=0; i<3; i++)
{
printf("\n %d ", a[j][i]);
if (i==2)
{
printf("\n");
}
}
}
答案 0 :(得分:1)
所有声明函数的原型或在主要上面写函数
首先调用Bubblesort,然后调用DisplayArray函数
我认为该程序的逻辑在这里被打破了
FragmentActivity
}
使用j完成循环,但它不会在程序中的任何地方使用我认为这是一个错误