zoukankan      html  css  js  c++  java
  • 求最大值和次大值

            

    void main()
    {
        int a,b=0,i,j,k,g,z=0;
        int num[20][10]={{0},{0},{0},{0},{0},{0},{0},{0},{0},{0}};
        int Max[20][2]={{0},{0}};
        scanf("%d",&a);                          ////////数据组数
        if(a<=0){
            exit(0);
        }
        for(i=0;i<a;i++){
            scanf("%d",&j);                      ////////每组数据个数
            for(k=0;k<j;k++){
                scanf("%d",&num[i][k]);
            }
            for(j=k-1;j>0;j--){                  /////////一组结束冒泡排序
                for(g=k-1;g>0;g--){
                    if(num[i][g]>num[i][g-1]){
                        b=num[i][g];
                        num[i][g]=num[i][g-1];
                        num[i][g-1]=b;
                    }
                }
            }
            Max[i][0]=num[i][0];
            while(num[i][z]>=Max[i][0]){
                z++;
            }
            Max[i][1]=num[i][z];
            z=0;
        }
        for(i=0;i<a;i++){
            printf("%d %d
    ",Max[i][0],Max[i][1]);
        }
    }

          题目中让我们来求输入数据的最大值和次大值。最开始我是想在数组中直接对其进行排序,然后输出数组的第一个和第二个数。但是,我没有考虑到重复数据的问题,所以我进行了一些改进,想将最大值找出来以后保存入另一个数组,再将最大值与剩下的数进行比较,第一个小于它的数就是次大值。

          这个问题解决以后,我发现,输入多组数据时,二维数组的数据比较难处理,需要一个变量保存每一组数据的数据个数,比较麻烦,所以,我就将数据处理直接放到了输入数据之后。输入一组数据,马上进行处理,这样数据个数不需要另外保存,还提高了运行效率

  • 相关阅读:
    重构了一波代码,聊聊后端也聊聊游戏后端
    浅谈游戏开发中常见的设计模式
    一次查内存泄露
    sql语句技巧
    python后端链接数据库-----MySQLdb
    web的应用模式
    静态文件
    django配置文件
    视图
    django子应用
  • 原文地址:https://www.cnblogs.com/PerseusQ/p/5353266.html
Copyright © 2011-2022 走看看