| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1078 人关注过本帖
标题:我又迷了,
只看楼主 加入收藏
关耳扛刀
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2018-9-27
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:3 
我又迷了,
求输入的一组整数中的次大数和次小数的差。
输入:第一行是测试数据的组数。以下每行是一组测试数据,每组由多个整数组成,第一个数表示该组一共有几个整数(大于3,小于等于100),整数之间由空格分开
输出:对输入的每组测试数据,将结果输出,每组之间空行,最后一组没有空行
#include<stdio.h>
int main()
{
    int min,n,a,t,i;
    int f[100];
    scanf("%d",&n);
    min=0;
    while(n--){
        scanf("%d",&t);
        for(i=0;i<=t;i++){
            scanf("%d",&f[i]);
            if(f[min]>f[i]){
                min=i;
            }
        }
        printf("%d",f[i-1]-f[min+1]);
    }
    return 0;
}
不知道错哪,我隐隐约约感觉我的思路好像错了
搜索更多相关主题的帖子: 整数 测试 数据 int min 
2018-10-23 22:56
Mr_doge
Rank: 5Rank: 5
等 级:贵宾
威 望:10
帖 子:159
专家分:385
注 册:2018-6-28
收藏
得分:10 
读入数据的思路没啥毛病,但是读入数据后,题目要求次大数(第二大的数)减去次小数(第二小的数),我理解没错吧,如果输入的数字大小是乱序的,那么你求得了min也意义不大,这道题比较好的处理方式就是读入数据后,对存储了数据的数组进行排序,当数组内数字是有序的,那么这道题就非常容易解决了,至于排序么,C标准库有排序函数,也可以自己写一个简单排序
2018-10-24 01:15
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:10 
为了避免排序,可以维系一个buf[4]。
遍历原数组,将每一个元素加入到buf中。加入的原则是:只保留最大最小,及次大次小。
2018-10-24 08:40
关耳扛刀
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2018-9-27
收藏
得分:0 
好的我去试试
2018-10-25 14:07
快速回复:我又迷了,
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.064426 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved