对一个二维数组中的数据排序,方法如下: 将整个数组中值最小的元素所在行调整为数组第一行, 将除第一行外的行中最小元素所在行调整为第2行, 将除第1,2行外的行中最小值元素所在行调整为第3行,以此类推

    xiaoxiao2021-03-26  21

    #include <stdio.h> int main() {         int array[5][5];         int i,j,k,temp,min;

            int min_i = 0,m = 0;            //利用min_i记录最小的数的下标,用m记录换行次数         srand( time(NULL) );                 //利用随机函数分配一个数组         for(i = 0;i < 5;i++ )         {                 for(j = 0;j < 5;j++ )                 {                         array[i][j] = rand() % 100;                         printf("%-4d",array[i][j]);                 }                 printf("\n");         }         while( m < 5 )         {             min = array[m][0];             for( i = m;i < 5 ;i++ )            {                 for(j = 0;j < 5;j++ )                 {                        if( min > array[i][j])            //找出最小的数,并记录下它的下标                         {                             min = array[i][j];                             min_i = i;                          }                  }           }         for(k = 0;k < 5;k++ )                       //进行整行替换         {             temp = array[m][k];             array[m][k] = array[min_i][k];             array[min_i][k] = temp;         }                 m++;         }         printf("The new array 1 is :\n");         for(i = 0;i < 5;i++ )         {                 for(j = 0;j < 5;j++ )                         printf("%-4d",array[i][j]);                 printf("\n");         }     return 0; }

    结果程序运行示例:

    66  66  19  82  24   61  68  99  34  39   11  3   27  13  83   60  12  73  35  14   25  54  92  18  64   The new array 1 is : 11  3   27  13  83   60  12  73  35  14   25  54  92  18  64   66  66  19  82  24   61  68  99  34  39  

    转载请注明原文地址: https://ju.6miu.com/read-658968.html

    最新回复(0)