c语言写一个程序:给定一个整数数组,请求出该数组中两数之差(绝对值)的最小值,并确定对应元素的位置。 输入 第一行为一个正整数n,随后第二行为n个整数a。 输出 该数组中两数之差(绝对值)的最小值及对应元素在输入数组中的位置索引,索引从1开始计数,以空格分隔。若有多组,输出任意一组即可。 示例输入 5 105 7 9 16 -31 示例输出 2 2 3
时间: 2023-05-12 07:03:24 浏览: 197
以下是C语言程序的代码:
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
int main() {
int n, i, j, min_diff = INT_MAX, index1, index2;
scanf("%d", &n);
int *a = (int*)malloc(n * sizeof(int));
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
for (i = 0; i < n; i++) {
for (j = i+1; j < n; j++) {
int diff = abs(a[i] - a[j]);
if (diff < min_diff) {
min_diff = diff;
index1 = i+1;
index2 = j+1;
}
}
}
printf("%d %d %d", min_diff, index1, index2);
free(a);
return 0;
}
对于输入示例,输出为:2 2 3
其中,第一个数字2表示两数之差(绝对值)的最小值,第二个数字2表示对应元素在输入数组中的位置索引,第三个数字3表示对应元素在输入数组中的位置索引。
阅读全文