基本思路:先将二维数组转换为一维数组,然后用选择or冒泡排序,再输出最值。
代码如下:(水平拙劣,望各位留下宝贵意见共同交流)
#include<stdio.h>
#include<conio.h>
//不用其他变量交换两个变量的值(仅适用于整型)
int main( )
{
int a[3][3] = {4,4,34,37,3,12,5,6,5};//原数组
int b[9];//一维数组
int i,j,cot = 0,c,d = -1;//一堆计数变量
for ( i = 0; i < 3; i++)//二维数组转化为一维数组方便排序找出最大值最小值
{
for ( j = 0; j < 3; j++)
{ d++;
for (c = d; c < 9; c++)
{
b[c] = a[i][j];
break;
}
}
}
printf("原二维数组:\n");
for ( i = 0; i < 3; i++)//结构化输出数组
{
for ( j = 0; j < 3; j++)
{
printf("%d\t",a[i][j]);
++cot;
if (cot % 3 == 0)
{
printf("\n");
}
}
}
for ( i = 0; i < 9; i++)
{
for ( j = i + 1; j < 9; j++)
{
if (b[i] > b[j] )//换成大于则是逆序输出
{
b[i]^=b[j]^=b[i]^=b[j];//将较小数放在前面
}
}
}
printf("转化为一维数组后排序结果:\n");
for ( i = 0; i < 9; i++)
{
printf("%d ",b[i]);
}
printf("\nThe max is %d\nThe min is %d",b[8],b[0]);
getch();
return 0;
}