一道排续题

木可大大 2008-12-21 10:47:39
第二小整数
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 56 Accepted Submission(s) : 29
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
求n个整数中倒数第二小的数。
每一个整数都独立看成一个数,比如,有三个数分别是1,1,3,那么,第二小的数就是1。

Input
输入包含多组测试数据。
输入的第一行是一个整数C,表示有C测试数据;
每组测试数据的第一行是一个整数n,表示本组测试数据有n个整数(2<=n<=10),接着一行是 n个整数 (每个数均小于100);

Output
请为每组测试数据输出第二小的整数,每组输出占一行。
Sample Input
2
2
1 2
3
1 1 3

Sample Output
2
1
...全文
127 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lbh2001 2008-12-22
  • 打赏
  • 举报
回复
纯C版,不知道会不会超时

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int cmp ( const void *a , const void *b )
{
return *(int *)a - *(int *)b;
}

int main(int argc, char *argv[])
{
int n;
int m;
int i;
int a[10];
scanf("%d", &n);
while (n-- > 0)
{
scanf("%d", &m);
memset(a, 0x7F, sizeof(a)); /*数组元素初始化为一个大于100的数*/
i = 0;
while (m-- > 0)
{
scanf("%d", &a[i++]);
}
qsort(a, 10, sizeof(a[0]), cmp);
printf("%d\n", a[1]);
}

return 0;
}
lbh2001 2008-12-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wudeshou82666 的回复:]
Total Submission(s) : 56 Accepted Submission(s) : 29
这是啥意思,E文不行
[/Quote]
提交数为 56, 通过的数目是 29
wudeshou82666 2008-12-22
  • 打赏
  • 举报
回复
Total Submission(s) : 56 Accepted Submission(s) : 29
这是啥意思,E文不行
梅文海 2008-12-22
  • 打赏
  • 举报
回复
写个伪代码你看看
int sort(int* a,int max){
int n1,n2;
n1=0xffff;
n2=0xffff;
for(int i=0;i<max;i++){
if(n1>a[i]){
n1=a[i];
n2=n1;
}
}
printf("%d,%d",n1,n2);
}
梅文海 2008-12-22
  • 打赏
  • 举报
回复
定义两个变量存放最小数n1和次小数n2,循环时当有数据比n1小就把该数放在n1中,把n1的数放到n2中。

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧