我自己用C语言写了个二维数组元素从小到大排序的小程序,程序无错误,可实现不了其功能,请算法指点。
/* 对二位数组元素进行从小到大排序*/ #include "stdio.h"
#include "stdio.h"
int A[2][2];
int i=0,j=0,b=0;
main()
{
{for(i=0;i<2;i++)
for(j=0;j<2;j++)
scanf("%d",&A[i][j]);
}
{ int b=0;
printf("原数组为:\n");
for(i=0;i<2;i++)
for(j=0;j<2;j++)
{ printf("%d",A[i][j]);
++b;
if(b%2==0)
printf("\n");
}
}
{int min1,min2,t,a,b;
for(a=0;a<2;a++)
for(b=0;a<2;a++)
min1=a;min2=b;
{ for(i=a;i<2;i++)
for(j=b;j<2;j++)
{ if(A[min1][min2]>A[i][j])
min1=i; min2=j;//找最小的值
t=A[i][j]; A[i][j]=A[min1][min2]; A[min1][min2]=t;
}
}
}
{ int b=0;
printf("输出排序后的数组为:\n");
for(i=0;i<2;i++)
for(j=0;j<2;j++)
{ printf("%d",A[i][j]);
++b;
if(b%2==0)
printf("\n"); }
}
}
我自己用C语言写了个二维数组元素从小到大排序的小程序,程序无错误,可实现不了其功能,请算法指点。
谢谢
每题五分,请点击本人提问,回答更多问题,全部是关于计算机的,只要有满意答案,追加五分后采纳。绝对信誉
for的循环体语义游庆高不清。建议删除不必要的大括号,并将for循环体大括号括起来。因差数二维数组在内存中会线性存放,故建议定义指针变量 int *p=&A[0][0]; 然后通过p象一维数组一样进行排序,最后神尺再输出这个二维数组。
//你写的格式不太清楚,我就没看了,我写了一份,你看看,能看懂吗?
//橘并方法是 把二维睁兆数组转悉伍租化为一位数组,用冒泡法排序
程序写不下,你的回答空间不够。
for(b=0;a<2;a++)这肯定是一个问题吧