• sicily 6496. 二维数组


    Description
    对于5行,5列的矩阵,问这25个整数中:

    1, 最大,最小的数第i行, 第j列的数

    2, 对这25个数进行排序,使得从左到右,从上到下非递减,

    (即:A[0][0] <= A[0][1] <= ... <= A[0][4] <= A[1][0] <= ...,A[4][4])

    正如你所见,矩阵的下标从0开始计数。

    Input
    每组数据包含5行,5列25个整数,输入有多组,EOF为结束标志

    Output
    对于每组数据,输出下列格式的信息:

    MAX: <i, j>

    MIN: <i, j>

    array after sorting:

    a[0][0] a[0][1] ... a[0][4]

    a[1][0] .........

    ...

    a[4][0] ............... a[4][4]

    输出矩阵的时候,同一行的数之间是通过制表符分隔开的

    用指针做很简单,或者可以新开一个一维数组把每个元素塞进去再排序

    View Code
      1 #include<stdio.h>
      2 
      3 #define COLUMN 5
      4 #define ROW 5
      5 #define SIZE 25    
      6 
      7 void maxAndMin( int matrix[][COLUMN] );
      8 void selectionSort( int matrix[][COLUMN] );
      9 void printMatrix( int matrix[][COLUMN] );
     10 
     11 int main()
     12 {
     13     int i, j;
     14     int matrix[ROW][COLUMN] = {0};
     15     
     16     while ( scanf ( "%d", &matrix[0][0] ) != EOF )
     17     {
     18         for ( j = 1; j < COLUMN; j++)
     19         {
     20             scanf("%d", &matrix[0][j] );
     21         }
     22         
     23         for ( i = 1; i < ROW; i++)
     24         {
     25             for ( j = 0; j < COLUMN; j++ )
     26             {
     27                 scanf( "%d", &matrix[i][j] );
     28             }
     29         }
     30         
     31         maxAndMin( matrix );
     32         
     33         selectionSort( matrix );
     34         
     35         printMatrix( matrix );
     36     }
     37     
     38     return 0;
     39 } 
     40 
     41 void maxAndMin( int matrix[][COLUMN] )
     42 {
     43     int i, j;
     44     int max, min;
     45     int rmax = 0, cmax = 0;
     46     int rmin = 0, cmin = 0;
     47 
     48     max = matrix[0][0];
     49     min = matrix[0][0];
     50 
     51     for( i = 0; i < ROW; i++ )
     52     {
     53         for( j = 0; j < COLUMN; j++ )
     54         {
     55             if( matrix[i][j] > max )
     56             {
     57                 max = matrix[i][j];
     58                 rmax = i;
     59                 cmax = j;
     60             }
     61             else if( matrix[i][j] < min )
     62             {
     63                 min = matrix[i][j];
     64                 rmin = i;
     65                 cmin = j;
     66             }
     67         }
     68     }
     69     
     70     printf("MAX: <%d, %d>\n",  rmax, cmax );
     71     printf("MIN: <%d, %d>\n",  rmin, cmin );
     72     
     73     return;
     74 }
     75 
     76 
     77 void selectionSort( int matrix[][COLUMN] )
     78 {
     79     int i, j;
     80     int min;
     81     int temp;
     82     int *p;
     83     
     84     p = &matrix[0][0];
     85     
     86     for ( i = 0; i < SIZE - 1; i++ )
     87     {
     88         min = i;
     89         for ( j = i + 1 ; j < SIZE; j++ )
     90         {
     91             if ( *(p + j) < *(p + min) )
     92             {
     93                 min = j;
     94             }
     95         }
     96         
     97         if ( i != min )
     98         {
     99             temp = *(p + i);
    100             *(p + i) = *(p + min);
    101             *(p + min) = temp;
    102         }
    103     }
    104     
    105     return;
    106 }
    107 
    108 void printMatrix( int matrix[][COLUMN] )
    109 {
    110     int i, j;
    111     
    112     printf("array after sorting:\n");
    113     
    114     for ( i = 0; i < ROW; i++ )
    115     {
    116         for ( j = 0; j < COLUMN; j++ )
    117         {
    118             if ( j == COLUMN - 1 )
    119             {
    120                 printf("%d\n", matrix[i][j]);
    121             }
    122             else
    123             {
    124                 printf("%d\t", matrix[i][j]);
    125             }
    126         }
    127     }
    128     
    129     return;
    130 }
  • 相关阅读:
    基于zookeeper实现分布式锁(续)
    Jquery消息提示插件toastr使用详解
    【微服务架构】SpringCloud组件和概念介绍(一)
    elasticsearch(全文检索)的介绍和安装
    springboot+elasticsearch实现全局检索
    自动化框架学习各个模块,以及遇到的问题
    python重写方法
    自动化时,写时候的疑问
    自动化selenium,执行js,以及触屏操作,和类的解释
    写了个python脚本,循环执行某一个目录下的jmeter脚本————解决的问题,每次回归时,都得一个个拉取
  • 原文地址:https://www.cnblogs.com/joyeecheung/p/2797719.html
Copyright © 2020-2023  润新知