求教c语言二维数组的冒泡排序法?

求教牛牛,用c语言怎么将一个4*5数组用冒泡排序法按顺序输出?请仔细讲解,满意答案立刻加分。(我用tc2.0编译)#include"stdio.h"
main() {
int a[4][5]={7,5,3,4,34,67,76,9,4,8,4,54,33,46,7,4,1,44,109,10};
int i,j;
for(i=0;i<=3;i++){
for(j=0;j<=4;j++){
printf("%d,",a[i][j]);
} }
getch();
return 0;
}

1、打开Visual Studio工具并创建一个新的Win32程序。

2、在打开的C语言文件中,导入stdio.h空间,然后准备一个main函数

3、接下来,准备一个需要进行冒泡排序的整数数组。如下图所示,数组中数字的顺序是不正常的。

4、接下来,准备变量,准备好的变量用于对交互数据进行排序。

5、然后我们准备两个for循环数组,我们需要注意外循环和内循环。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-09
#include"stdio.h"
void main()
{
int a[4][5]={7,5,3,4,34,67,76,9,4,8,4,54,33,46,7,4,1,44,109,10};
int i,j,k,s;
for(i=0;i<4;i++)
for(j=0;j<5;j++)
{
for(s=j;s<5;s++)
{
if(a[i][j]>a[i][s+1])
{
k=a[i][s+1];
a[i][s+1]=a[i][j];
a[i][j]=k;
}
}
}
for(i=0;i<4;i++)
{
for(j=0;j<5;j++)
printf("%5d",a[i][j]);
printf("\n");
}
printf("\n");
}
这是把没一行都用冒泡法排列,我在写一个把整个二维数组集体排序的
第2个回答  推荐于2017-12-16
#include<stdio.h>
int main()
{int a[4][5]={7,5,3,4,34,67,76,9,4,8,4,54,33,46,7,4,1,44,109,10};
int i,j;
int b[4*5];
int k=0;
for(i=0;i<=3;i++)
{for(j=0;j<=4;j++)<br> {printf("%d,",a[i][j]);<br> b[k]=a[i][j];<br> k++;<br> }
}
for(i=0;i<4*5-1;i++)
{for(j=i+1;j<4*5;j++)<br> {if(b[i]<b[j])<br> {int t;<br> t=b[i];b[i]=b[j];b[j]=t;<br> }
}
}
printf("\n");;
for(k=0;k<4*5;k++)
{printf("%d ",b[k]);<br> }
getch();
return 0;
}
要不自己达到TC2.0,或者复制到WIN-TC,建议你编程使用WIN-TC,与TC2.0相比,容易些(能粘贴复制,还能中文),且编程的其他东西没有任何变化本回答被网友采纳
第3个回答  2013-07-09
void BubbleSort(int low,int high)
{
int i,j,ii;
int exchange;
int Temp ;

for(i = low;i <= high;i++)
{
exchange = 0;
for(j = high-1;j>=i;j--)
{
if(map[j+1][1] < map[j][1])
{
Temp = map[j+1][1];
map[j+1][1] = map[j][1];
map[j][1] = Temp;

Temp = map[j+1][0];
map[j+1][0] = map[j][0];
map[j][0] = Temp;
exchange = 1;
}
}
if(!exchange)
return;
}
}
low,high对应二维数组[low][high]
第4个回答  2017-09-02
#include<stdio.h>
int main()
{int a[4][5]={7,5,3,4,34,67,76,9,4,8,4,54,33,46,7,4,1,44,109,10};
int i,j;
int b[4*5];
int k=0;
for(i=0;i<=3;i++)
{for(j=0;j<=4;j++)<br> {printf("%d,",a[i][j]);<br> b[k]=a[i][j];<br> k++;<br> }
}
for(i=0;i<4*5-1;i++)
{for(j=i+1;j<4*5;j++)<br> {if(b[i]<b[j])<br> {int t;<br> t=b[i];b[i]=b[j];b[j]=t;<br> }
}
}
printf("\n");;
for(k=0;k<4*5;k++)
{printf("%d ",b[k]);<br> }
getch();
return 0;
}
相似回答