西电OJ题解- 3(C语言):最小差值

西电C语言OJ题库及答案 专栏收录该内容
7 篇文章 4 订阅

  大家好,我是不温卜火,是一名计算机学院大数据专业大三的学生,昵称来源于成语—不温不火,本意是希望自己性情温和。作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己所犯的错误希望能够帮助到很多和自己一样处于起步阶段的萌新。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!暂时只在csdn这一个平台进行更新,博客主页:https://buwenbuhuo.blog.csdn.net/

PS:由于现在越来越多的人未经本人同意直接爬取博主本人文章,博主在此特别声明:未经本人允许,禁止转载!!!


2

西电OJ题解- 3(C语言):最小差值

1
本专栏为西安电子科技大学C语言课程题库的题解,题目及其部分解题思路由好兄弟梁忠鑫提供,学长在此只是修改完善。请各位支持原创,目前仅在CSDN发布

一、题目

1. 题目描述

给定n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值。

2. 输入说明

输入第一行包含一个整数n。
第二行包含n个正整数,相邻整数之间使用一个空格分隔。

3. 输出说明

输出一个整数,表示答案。

4. 样例输出

样例输入
5
1 5 4 8 20
样例输出
1
样例说明
  相差最小的两个数是54,它们之间的差值是1。
样例输入
5
9 3 6 1 3
样例输出
0
样例说明
  有两个相同的数3,它们之间的差值是0.
数据规模和约定
对于所有评测用例,2 ≤ n ≤ 1000,每个给定的整数都是不超过10000的正整数。

二、解题思路及题解

1. 解题思路

  • 流程控制

2. 题解

  • 源码
/**
 * @Author: 梁忠鑫 / 李华鑫(修改)
 * @Email: 459804692@qq.com
 * @Date: 2020/12/06
 * @Time: 16:30
 * @Version: 1.0
 */
 #include<stdio.h>
int main()
{
    int i,j,n,a[10000],mix=10000,max;
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    for(i=0;i<n;i++)
        for(j=0;j<i;j++)
    {
        if(a[i]-a[j]==0)
        {
            mix=0;
            break;
        }
        if((a[i]-a[j])>0)
            {
                max=a[i]-a[j];
                if(max<mix)
                    mix=max;
            }
            else
            {
                max=a[j]-a[i];
                if(max<mix)
                    mix=max;
            }
    }
    printf("%d\n",mix);
    return 0;
}




  • 运行结果

3


5

  好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
  如果我的博客对你有帮助、如果你喜欢我的博客内容,请“点赞” “评论”“收藏”一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
  码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘了关注我哦!

  • 55
    点赞
  • 2
    评论
  • 4
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值