注册 登录
编程论坛 C++教室

输入N,再输入N个数,N<10000,这N个数大小1-100,输入M,请打印出M大值

隔壁小哥 发布于 2019-03-05 09:07, 2139 次点击
各位大侠!小弟刚学C++,在线等!谢谢!
4 回复
#2
wp23195702019-03-05 09:10
话都说不明白,啥叫m大值
#3
隔壁小哥2019-03-05 09:16
输入5(N),再输入5个数分别2 12 67 43  3  输入(M)3  输出第3大数12
#4
rjsp2019-03-05 10:03
原来“M大值”是“第M大值”

程序代码:
#include <stdio.h>

int main( void )
{
    unsigned short buf[101] = {};

    size_t n;
    scanf( "%zu", &n );
    for( size_t i=0; i!=n; ++i )
    {
        unsigned val;
        scanf( "%u", &val );
        ++buf[val];
    }

    size_t m;
    scanf( "%zu", &m );
    for( size_t i=0; i!=n; ++i )
    {
        if( m <= buf[i] )
        {
            printf( "%zu\n", i );
            break;
        }
        else
            m -= buf[i];
    }
}

#5
隔壁小哥2019-03-05 10:55
回复 4楼 rjsp
谢谢大侠!
如果不用scanf,怎么做?初学者看不懂。

[此贴子已经被作者于2019-3-5 10:58编辑过]

1