csp2017-12-1
试题编号: | 201712-1 |
试题名称: | 最小差值 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: | 问题描述 给定n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值。 输入格式 输入第一行包含一个整数n。 输出格式 输出一个整数,表示答案。 样例输入 5 样例输出 1 样例说明 相差最小的两个数是5和4,它们之间的差值是1。 样例输入 5 样例输出 0 样例说明 有两个相同的数3,它们之间的差值是0. 数据规模和约定 对于所有评测用例,2 ≤ n ≤ 1000,每个给定的整数都是不超过10000的正整数。 |
思路:循环数组,让数组中的数与其他的数比较,两数相加等于0则两数互为相反数,用计数器自加,由于数组中的每个数都会去比较一遍,所以把计数器的值除以二得到最终结果。
代码如下:
#include <stdio.h>
int main()
{
int m,i,j,k,sum;
sum=0;
scanf("%d",&m);
int a[m];
for(i=0;i<m;i++)
{
scanf("%d",&a[i]);
}
for(j=0;j<m;j++)
for(k=0;k<m;k++)
{
if(a[j]+a[k]==0)
sum+=1;
}
printf("%d",sum/2);
return 0;
}
结果图示: