利用数组,结合算法。熟练应用两种以上解题方法。
实验内容:
法1:暴力
#include <stdio.h>
#include <stdlib.h>
int main()
{
//输入
printf("数组元素个数:\n");
int sum = 0 , i = 0, j;
scanf("%d",&sum);
int array[sum-1];
printf("以空格分隔,输入数值\n");
for(i = 0; i < sum; i++){
scanf("%d",&array[i]);
}
//暴力:两两之差的绝对值
int min = 100, temp = 0;
for( i = 0; i < sum-1; i++){
for( j = i+1; j < sum; j++){
temp = array[i] - array[j];
if(temp < 0 ){
temp = -temp;
}
if(temp < min){
min = temp;
}
}
}
printf("\n%d", min);
return 0;
}
法2:排序
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("请输入数组内要存放的数字个数:\n");
int number , i ,j;
scanf("%d",&number);
int array[number-1];
printf("请输入具体数字(以空格为分隔符):\n");
for( i = 0; i < number; i++){
scanf("%d",&array[i]);
}
//冒泡排序
for(i = 0; i < number-1; i++){
for( j = i+1; j < number; j++){
if(array[i]>array[j]){
int temp = 0;
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
int temp = 0 ,min = 100;
for( i = 0; i < number;i ++){
temp = array[i+1]-array[i];
if(temp<min){
min = temp;
}
}
printf("最小差值为:%d",min);
return 0;
}