zoukankan      html  css  js  c++  java
  • 最大的两个数

    题目截图:

    思路:

      先对每列四个数按数值大小逆序排序,然后对最大的两个数按索引顺序排序即可。中间用到 qsort 函数,详细用法见另一篇博客

    代码如下:

     1 /*
     2     最大的两个数 
     3 */
     4 
     5 #include <stdio.h>
     6 #include <string.h>
     7 #include <math.h>
     8 #include <stdlib.h>
     9 #include <time.h>
    10 #include <stdbool.h>
    11 
    12 // 结点结构体 
    13 typedef struct {
    14     int data;                    // 数据 
    15     int index;                    // 数组下标 
    16 } node;
    17 
    18 // 按数据大小逆序排序 
    19 int cmp1(const void* a, const void* b) {
    20     node* c = (node*)a;
    21     node* d = (node*)b;
    22     return d->data - c->data;
    23 }
    24 
    25 // 按原数组下标大小顺序排序 
    26 int cmp2(const void* a, const void* b) {
    27     node* c = (node*)a;
    28     node* d = (node*)b;
    29     return c->index - d->index;
    30 }
    31 
    32 int main() {
    33     int array[4][5];            // 存储矩阵 
    34     int a[2][5];                // 存储每列最大的两个数 
    35     node l[4];                    // 存储每列四个结点 
    36     while(1) {
    37         int i, j;
    38         for(i=0; i<4; ++i) {    // 输入矩阵 
    39             for(j=0; j<5; ++j) {
    40                 if(scanf("%d", &array[i][j]) == EOF) {
    41                     return 0;
    42                 }
    43             }
    44         }
    45         for(j=0; j<5; ++j) {    
    46             for(i=0; i<4; ++i) {    // 初始化每列结点 
    47                 l[i].data = array[i][j];
    48                 l[i].index = i;
    49             }
    50             // 排序 
    51             qsort(l, 4, sizeof(l[0]), cmp1);
    52             qsort(l, 2, sizeof(l[0]), cmp2);
    53             for(i=0; i<2; ++i) {    // 存储每列最大的两个数 
    54                 a[i][j] = l[i].data;
    55             }
    56         }
    57         for(i=0; i<2; ++i) {        // 按要求输出 
    58             for(j=0; j<5; ++j) {
    59                 printf("%d ", a[i][j]);
    60             }
    61             printf("
    ");
    62         }
    63     }
    64 
    65     return 0;
    66 }
  • 相关阅读:
    进程控制
    文件、目录操作相关函数
    Linux 系统IO函数 复制文件内容
    gdb调试
    makefile的使用
    GCC编译器
    vim命令的使用
    Linux Ubuntu笔记(常用命令)
    博客搬家(CSDN->博客园)
    level 4
  • 原文地址:https://www.cnblogs.com/coderJiebao/p/HustTest11.html
Copyright © 2011-2022 走看看