求助QAQ

P1923 【深基9.例4】求第 k 小的数

yumi08 @ 2020-03-27 16:25:28

不懂就问,为什么long long n,m必须是全局变量不然就无法输入??放在main函数里输入5 2赋值给nm会出错

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
long long a[5000005];
long long n,m;
int main()
{
    scanf("%d%d",&n,&m);
    for(long long i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    nth_element(a,a+m,a+n);
    printf("%d\n",a[m]);
}

by metaphysis @ 2020-03-27 16:35:08

@yumi08 如果放在main函数内,您在输入和输出时应该指定格式为"%lld"而不是"%d"。

您可以参考我写的一本书上的例子,具体参见第1章“入门”,上面有比较详细的解析,并且附有相关应用题目(题目源自UVa OJ),可免费下载此书的PDF版本。链接:https://blog.csdn.net/metaphysis/article/details/90288252


by metaphysis @ 2020-03-27 16:36:57

@yumi08 即使放在外面声明为全局变量,在输入时也最好指定输入和输出格式为"%lld"。


by yumi08 @ 2020-03-27 17:17:25

@metaphysis 非常感谢!我马上去看!!


|