吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1750|回复: 8
收起左侧

[求助] 用C语言求第二小的数,如题

[复制链接]
头像被屏蔽
绝地飞鸿 发表于 2020-10-2 16:48
提示: 作者被禁止或删除 内容自动屏蔽

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

送葬者 发表于 2020-10-2 16:58
忘记了· 忘光光
whsdaks 发表于 2020-10-2 17:24
涛行 发表于 2020-10-2 17:25
无敌小车 发表于 2020-10-2 18:07
看起来不难呀
头像被屏蔽
 楼主| 绝地飞鸿 发表于 2020-10-2 20:30
提示: 作者被禁止或删除 内容自动屏蔽
_小白 发表于 2020-10-2 21:14
本帖最后由 _小白 于 2020-10-2 21:22 编辑

先排序一遍。然后数组遍历,第 i-1 和第 i 的数不同,k++(即为第k个小的数)
sort() //先排序
if(要第1小的数) return 第一个数
int k=1,i=1;
for(i;i<length;i++){
  if(num[i-1]!=num) k++
  if(k==第几小数) return num
}
return 'NO'
这个要第二小数就更简单了,先遍历一遍min1=最小值
再遍历一遍找第二小的数min2=(大于min1 && 小于min2)
有就输出,没有就返回“NO”
雷欧库珀 发表于 2020-10-3 09:28

#include<stdio.h>

int main()
{
        int n, a[100], b[100], i, j, c, e = 0;
        int temp, d;
        scanf("%d", &d);
        while (scanf("%d", &n) != '\n')
        {
                for (i = 1; i <= n; i++)
                {
                        scanf("%d", &a[i]);
                }
                i = 1;
                while (i <= n)
                {
                        for (j = i + 1; j <= n; j++)
                                if (a[i] < a[j])
                                {
                                        temp = a[j];
                                        a[j] = a[i];
                                        a[i] = temp;
                                }
                        b[i] = a[i];
                        i++;
                }
                for (i = n - 1; i >= 1; i--)
                {
                        if (n == 2)
                        {
                                for (i = 1; i <= 1; i++)
                                        if (a[i] > a[i + 1]) printf("%d", a[i]);
                                        else if (a[i + 1] > a[i]) printf("%d", a[i + 1]);
                                        else printf("NO");
                                goto c;
                        }
                        else if (b[i] > b[i + 1])
                        {
                                printf("%d", a[i]);

                                goto c;
                        }
                        if (i == 1) printf("NO");
                }
        c:
                printf("\n");
                e++;
                if (e == d)
                        break;
        }
        return 0;
}
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 11:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表