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

c++插队问题(请尽快)

asdfaad 发布于 2019-01-23 20:57, 4392 次点击
插队(必做)
(时间限制:1000ms 内存限制:65536KB)
统计
描述
早操时间,老师让同学们按照身高从小到大排成单列纵队,小童由于迟到了,同学们已经站好了队伍,小童想要插队。已知同学们排好的顺序及身高,请你告诉小童应该插在几号(若有身高相同的则尽量靠前排)。
输入:两行,第一行输入同学人数n(0<n<100)与小童的身高h,第二行依次输入n名同学的身高(cm)。
输出:一行,表示小童应该插入的序号。
要求:使用自定义函数。

输入
两行,第一行输入同学人数n(0<n<100)与小童的身高h,第二行依次输入n名同学的身高(cm)

输出
一行,表示小童应该插入的序号

难度


输入示例
4 130
120 123 125 130

输出示例
4
3 回复
#2
rjsp2019-01-24 08:33
这一题考的是“二分搜索”算法,也就是C++中的 std::lower_bound
但题目出得不好,因为可直接在输入时判断输入值是不是大于等于小童的身高,是则就是此位置。
#3
asdfaad2019-01-24 19:17
回复 2楼 rjsp
那怎么做啊
#4
rjsp2019-01-25 08:40
回复 3楼 asdfaad
程序代码:
#include <cstdio>

int main( void )
{
    unsigned n, tong;
    scanf( "%u%u", &n, &tong );

    unsigned index;
    for( index=0; index!=n; ++index )
    {
        unsigned height;
        scanf( "%u", &height );

        if( tong <= height )
            break;
    }

    printf( "%u\n", index+1 );
}
1