绝地飞鸿 发表于 2020-10-2 16:48

送葬者 发表于 2020-10-2 16:58

忘记了· 忘光光

whsdaks 发表于 2020-10-2 17:24

数据结构?

涛行 发表于 2020-10-2 17:25

这是pat吧

无敌小车 发表于 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!=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, b, 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 = 1;
                while (i <= n)
                {
                        for (j = i + 1; j <= n; j++)
                              if (a < a)
                              {
                                        temp = a;
                                        a = a;
                                        a = temp;
                              }
                        b = a;
                        i++;
                }
                for (i = n - 1; i >= 1; i--)
                {
                        if (n == 2)
                        {
                              for (i = 1; i <= 1; i++)
                                        if (a > a) printf("%d", a);
                                        else if (a > a) printf("%d", a);
                                        else printf("NO");
                              goto c;
                        }
                        else if (b > b)
                        {
                              printf("%d", a);

                              goto c;
                        }
                        if (i == 1) printf("NO");
                }
      c:
                printf("\n");
                e++;
                if (e == d)
                        break;
      }
      return 0;
}
页: [1]
查看完整版本: 用C语言求第二小的数,如题