bsjmxg 2023-04-17 22:25 采纳率: 75%
浏览 18
已结题

csp求最小差值编译出错

CSP最小差值

问题描述
  给定n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值。
输入格式
  输入第一行包含一个整数n。
  第二行包含n个正整数,相邻整数之间使用一个空格分隔。
输出格式
  输出一个整数,表示答案。
样例输入
5
1 5 4 8 20
样例输出

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

用自己的编译器可以运行,提交的时候显示编译错误

#include <stdio.h>
#include <stdlib.h>
#include<math.h>
int main()
{
    int n;
    scanf("%d",&n);
    int a[1000];
    for(int i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    int t=0;
    int min=1000;
    for(int j=0;j<n;j++){
        for(int i=j+1;i<n;i++){
            t=fabs(a[j]-a[i]);

            if(t<min){
                min=t;
            }

        }
    }
   printf("%d",min);
   return 0;
}


  • 写回答

5条回答 默认 最新

  • 努力の小熊 全国大学生物联网技术与应用大赛获奖者 2023-04-17 23:03
    关注

    稍微修改了一下:

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    
    int main() {
        int n;
        scanf("%d", &n);
        int a[1000];
        for (int i = 0; i < n; i++) {
            scanf("%d", &a[i]);
        }
        int t = 0;
        int min = 1000;
        for (int j = 0; j < n; j++) {
            for (int i = j + 1; i < n; i++) {
                t = abs(a[j] - a[i]);
    
                if (t < min) {
                    min = t;
                }
    
            }
        }
        printf("%d", min);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 4月30日
  • 已采纳回答 4月22日
  • 创建了问题 4月17日

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来