把一个二维实型数组a按照第0列的元素进行排序(由大到小排序,用冒泡法)例如:a[i][0]大于a[i+1][0],则i行与i+1行所有元素都要进行对换 (c语言解答)
#include
int main()
{
int num[3][2] = {{5,2},{3,1},{2,9}};
int temp;
for(int i = 0;i<3-1; i++)
{
for(int j = 0;j<3-1-i; j++)
{
if(num[j][0]>num[j+1][0])
{
for(int k=0; k<2;k++)
{
temp = num[j][k];
num[j][k] = num[j+1][k];
num[j+1][k] = temp;
}
}
}
}
for(int i = 0; i<3; i++)
{
for(int j = 0; j<2; j++)
{
printf("%d ",num[i][j]);
}
printf("\n");
}
return 0;
}
#include
int main()
{
int num[3][2] = {{5,2},{3,1},{2,9}};
int temp;
for(int i = 0;i<3-1; i++)
{
for(int j = 0;j<3-1-i; j++)
{
if(num[j][0]>num[j+1][0])
{
for(int k=0; k<2;k++)
{
temp = num[j][k];
num[j][k] = num[j+1][k];
num[j+1][k] = temp;
}
}
}
}
for(int i = 0; i<3; i++)
{
for(int j = 0; j<2; j++)
{
printf("%d ",num[i][j]);
}
printf("\n");
}
return 0;
}
void main() {
int ar[3][2] = {{5,2},{3,1},{2,9}};
int temp[2], i, j;
int len = 3;
for(i = 0;i<len-1; i++) {
for(j = i+1;j<len; j++) {
if(ar[i][0] > ar[j][0]) {
memcpy(temp, ar[i], sizeof(temp));
memcpy(ar[i], ar[j], sizeof(temp));
memcpy(ar[j], temp, sizeof(temp));
}
}
}
for(i = 0; i<len; i++) {
printf("[%d, %d]\n", ar[i][0], ar[i][1]);
}
}
噢,是从大到小排列
void main() {
int ar[3][2] = {{5,2},{3,1},{2,9}};
int temp[2], i, j;
int len = 3;
for(i = 0;i<len-1; i++) {
for(j = i+1;j<len; j++) {
if(ar[i][0] < ar[j][0]) {
memcpy(temp, ar[i], sizeof(temp));
memcpy(ar[i], ar[j], sizeof(temp));
memcpy(ar[j], temp, sizeof(temp));
}
}
}
for(i = 0; i<len; i++) {
printf("[%d, %d]\n", ar[i][0], ar[i][1]);
}
}