• 美团笔试题第一题


    题目:

    某学校的期末考试共有n个学生参加,考试题目共m科。学校将会给一部分学生颁发单科成绩优秀奖,获奖学生需要满足的条件是某一科的成绩是所有学生中最高的或是最高之一。

    请问学校应该给多少个学生颁发单科成绩优秀奖。

    输入第一行包含两个正整数n和m,分别代表学生人数和考试科目数量。(n,m<=500)

    输出

    输出仅包含一个整数,表示获得单科成绩优秀奖的人数

    样本输入

    5 5

    28 35 38 10 19 

    4 76 72 38 86 

    96 80 81 17 10

    70 64 86 85 10

    1 93 19 34 41

    C语言代码:

    首先先找到二维数组中的每一列的最大值,并记录最大值的行下标,将所有行下标存入一个数组d中。

    #include<stdio.h>
    #define N 500
    #define M 500
    int del_same(int date[],int n);
    int main(void)
    {
     int a[N][M];
     int n,m;
     int i,j,k;
    // int sum=0;
    // int max=0;
     printf("输入考生人数n和考试科目m:");
     scanf("%d %d",&n,&m);
     for(i=0;i<n;i++)
     {
      for(j=0;j<m;j++)
      {
       scanf("%d",&a[i][j]);
      }
      printf(" ");
      }
      int b[m],d[m];
      for(i=0;i<m;i++)
      {
       b[i]=a[0][i];
       for(j=0;j<n;j++)
       {
        if(a[j][i]>b[i])
        {
         b[i]=a[j][i];
         d[i]=j;
        }
       }
      printf("%d ", b[i]);
      }
     for(i=0;i<m;i++)
     {
      for(j=i+1;j<m&&d[i]-d[j];j++)
      {
       if(!(j-m))
       {
        d[k++]=d[i];    
       }
      }
     }
     k=del_same(d,m);
     printf("%d",k);
      return 0;
     }

    然后写一个子函数,用来删除存放行下标数组中重复的元素。并重新存放删除过重复元素的数。并返回新的数组的长度,即要求的表彰的人数。

    int del_same(int date[],int n)
    {
        int i,j,k=0;
        for(i=0;i<n;++i)//i用来遍历数组
        {
            for(j=i+1;j<n && date[i]-date[j];++j);
            if(!(j-n))//没有重复元素
                date[k++]=date[i];//可将date[]看作两个数组
        }
        return k;//返回删除后的有效长度
    }

     删除数组中重复元素的参考程序:https://blog.csdn.net/qq2071114140/article/details/80490400?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase

  • 相关阅读:
    采用GRE隧道连接不同虚拟机上的mininet网络
    ubuntu下安装Pycharm
    Update to openvswitch 2.3.0
    安装Openvswich 2.3.0
    ubuntu安装git
    解决Vmware Vsphere中虚拟机与本地机复制粘贴问题
    windows下安装python的xlrd和xlwd安装包
    ubuntu 下NetworkX的安装和使用
    大整数乘法 python实现
    推特(Twitter)的Snowflake算法——用于生成唯一ID
  • 原文地址:https://www.cnblogs.com/sbb-first-blog/p/12891861.html
Copyright © 2020-2023  润新知