永发信息网

现有n个正整数,n≤100000,要求出这n个正整数中的第k个最小整数(相同大小的整数只计算一次),k≤400。

答案:2  悬赏:0  手机版
解决时间 2021-12-17 20:00
输入
第1行为n和k,第2行开始为n个正整数的值,整数间用空格隔开。

输出
第k个最小整数的值;若无解,则输出“NO RESULT”。
#include
int main(void){
int a[101][101];
int b[101][101] = {0};
int n,k;
int i,j,l,c,d;
int count = 0;
scanf("%d%d",&n,&k);
for(i=0;i<100; i++)
for(j=1;j<=100;j++){
if(i*100+j<=n){
scanf("%d",&a[i][j]);
c=a[i][j]/100;
d=a[i][j]%100;
b[c][d]++;
}
else{
i=100;j=101;}
}
for(i=0;i<100; i++)
for(j=1;j<=100;j++){
if(b[i][j]!= 0){
count++;
l=i*100+j;
}
if(count == k){
i=100;j=101;}
}
if(count == k&&k<=400)
printf("%d\n",l);

else
printf("NO RESULT\n");
}
为什么运行错误
最佳答案
题目只说 n≤100000和k≤400。

但是并没有限定输入整数的规模
这样
c=a[i][j]/100;
d=a[i][j]%100;
b[c][d]++;
这几行代码中 c就有可能是超过100的 比如输入的是100000
这样c=1000
明显 b[c][d]就越界了。

其实没那么复杂。
只需要对每个输入的 进行插入排序,同时只保留前k个就好。
开一个400的数组。
最后a[k-1]就是结果。
全部回答
#include         int main(void)  { int a[1000]; int b[1000] = {0}; int n,k; int i; int count = 0; scanf("%d%d",&n,&k); for(i = 0; i < n; i++) { scanf("%d",&a[i]); b[a[i]]++; } for(i = 0; i < 1000; i++) { if(b[i] != 0) count++; if(count == 3) break; } if(count == 3) printf("%d\n",i); else printf("no result\n");      }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
下图是近年我国最终消费对经济增长的贡献率,
梦幻西游69五庄不加点而且裸装,基本属性是多
单选题20世纪90年代,中国进一步对外开放的标
平面磨床M7130A如何磨小于0.01MM的工件
动物细胞进行传代培养可能发生的变化有A.细胞
六年级语文周报答案 第27期
4g94d发动机怎么提升动力
如图,地图上A地位于B地的正北方,C地位于B地
AOC3D显示器还不错吧?
at the news that his eyes rained tears.A.
提倡学习社会工作的话?
-What did Yang Ying say?-She said they____
犁耙渡的由来
思达科户户通机顶盒808G多少钱一个
某元素R的含氧酸化学式为H2RO4,则R的化合价
推荐资讯
CF密码17位的,怎么登不上去?输入账号密码,
()是人体的电话线,能把身体各部分获得的信息
单选题作为经典力学的先驱,他在实验的基础上
在深圳旅游,有什么小纪念品可以送给朋友的?
单选题下列有关东南亚中南半岛的叙述,正确的
据调查,某市2011年的房价为4000元/m2,预计2
校门口新搬来了一个炸臭豆腐的小摊,同学们远
张家口市宣化区河子西供电营业厅位置在什么地
胡庙派出所(二高治安室)地址在什么地方?想过
单选题体内DNA复制过程需要的条件不包括A.酶B
________÷________=________.
呈岙村老年协会地址在哪?我要去那里办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?