gpt4 book ai didi

c - 冒泡排序中的二维数组

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

我正在尝试使用冒泡排序创建一个二维数组,将 25 个数字 55 按升序排列

我的输入

Enter 25 integers:
Input No.[0][0]: 4
Input No.[0][1]: 5
Input No.[0][2]: 8
Input No.[0][3]: 9
Input No.[0][4]: 4
Input No.[1][0]: 2
Input No.[1][1]: 1
Input No.[1][2]: 0
Input No.[1][3]: 2
Input No.[1][4]: 4
Input No.[2][0]: 6
Input No.[2][1]: 7
Input No.[2][2]: 4
Input No.[2][3]: 5
Input No.[2][4]: 5
Input No.[3][0]: 4
Input No.[3][1]: 8
Input No.[3][2]: 9
Input No.[3][3]: 1
Input No.[3][4]: 2
Input No.[4][0]: 4
Input No.[4][1]: 5
Input No.[4][2]: 2
Input No.[4][3]: 1
Input No.[4][4]: 9

我的输出显示

Ascending:
4 4 5 8 9
0 1 2 2 4
4 5 5 6 7
1 2 4 8 9
1 2 4 5 9

正如你所看到的,它的排列不正确,它只排列了每行的 5 个数字,而不是整个数字

任何人都可以帮助我这样安排整数

Ascending:
0 1 1 1 2
2 2 2 4 4
4 4 4 4 5
5 5 5 6 7
8 8 9 9 9

这是我到目前为止的代码

int main(){

int rows = 5, cols = 5;
int arr[rows][cols];
int i,j,k,swap;


printf("Enter 25 integers:\n");

for(i = 0; i < rows; i++){
for(j = 0; j < cols; j++){

printf("Input No.[%d][%d]: ", i+0,j+0);
scanf("%d", &arr[i][j]);
}
}

for(k = 0; k < rows; k++){
for(i = 0 ; i < cols; i++){
for(j = i + 1; j < cols; j++){

if(arr[k][i] > arr[k][j]){

swap = arr[k][i];
arr[k][i] = arr[k][j];
arr[k][j] = swap;

}
}
}
}

printf("Ascending:\n");
for( i = 0 ; i < rows; i++){
for( j = 0 ; j < cols; j++){

printf("%3d", arr[i][j]);
}
printf("\n");
}

getch();

}

最佳答案

改进艾哈迈德的答案,我想添加以下代码(用于按升序缩短表格):

#include <stdio.h>

#define COL 5
#define ROW 6

int main()
{
int temp, t, i, j;
int arr[ROW][COL]={30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};

for(t=1; t<(ROW*COL); t++)
{
for(i=0; i<ROW; i++)
{
for(j=0; j<COL-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;
}
}
}
for(i=0; i<ROW-1; i++)
{
if (arr[i][COL-1]>arr[i+1][0])
{
temp=arr[i][COL-1];
arr[i][COL-1]=arr[i+1][0];
arr[i+1][0]=temp;
}
}
}
for(i=0; i<ROW; i++)
{
printf("\n");
for(j=0; j<COL; j++)
printf("%3d", arr[i][j]);
}
return 0;
}

将输入替换为您的表格,并将定义替换为给定数组的大小,然后就完成了。

执行时的输出:

  1  2  3  4  5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
26 27 28 29 30

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

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