对N行N列二维数组的每一行排序,偶数行(0当作偶数)由小到大排序,奇数行由大到小排序

这种问题可以分行进行讨论,排序可以冒泡排序,选择排序或二分法排序都可以。程序如下:

/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd. 
File name:
Author:fhb    Version:0.1    Date: 
Description:
Funcion List: 
*****************************************************/


#include
#include




int main()
{
int i,j,k,tmp;
int num[10][10];
int flag=0;


srand(time(NULL));


//随机取100以内的值 
for(i = 0;i < 10;i++)
{
for(j = 0;j < 10;j++)
{
num[i][j] = rand() % 100;
printf("%3d",num[i][j]);
}
printf("\n");
}


for(k = 0;k < 10;k++)
{
if(k % 2 == 0)
{
for(i = 0;i < 9;i++)
{
flag=0;
for(j = 0;j < 9-i;j++)
{
           if(num[k][j]>num[k][j+1])
{
tmp=num[k][j];
num[k][j]=num[k][j+1];
num[k][j+1]=tmp;
flag=1;
}
}
if(flag == 0)
{
break;
}
}
}
else
{
for(i = 0;i < 9;i++)
{
flag=0;
for(j = 0;j < 9-i;j++)
{
           if(num[k][j]{
tmp=num[k][j];
num[k][j]=num[k][j+1];
num[k][j+1]=tmp;
flag=1;
}
}
if(flag == 0)
{
break;
}
}
}
}


    printf("after sort the array are:\n");
for(i = 0;i < 10;i++)
{
for(j = 0;j < 10;j++)
{
printf("%3d",num[i][j]);
}
printf("\n");
}


    return 0;
}

对于以上程序,因为时间时刻不同,所以可以用时间取随机值,并且每次的取值不相同,这样可以避免自己输入或者程序输入浪费时间。

程序运行结果如下:



你可能感兴趣的:(对N行N列二维数组的每一行排序,偶数行(0当作偶数)由小到大排序,奇数行由大到小排序)