题目:求数组最大值与最小值的差
代码如下:
#include <stdio.h>
#define LEN 10
double difference(const double *arr);
int main(void)
{
double arr[LEN] = {1.1, 2.2, 3.34, 13.2, 0.3, 1.5, 1.99, 30.3, 2.2, 20.2};
double result = difference(arr);
printf("%.1f\n",result );
}
double difference(const double *arr)
{
int i;
double min = *arr;
double max = *arr;
for (i = 0; i < LEN; i++)
{
if (max < *(arr + i))
{
max = *(arr + i);
}
if (min > *(arr + i));
{
min = *(arr + i);
}
}
printf("%.1f - %.1f =", max, min);
return max - min;
}
运行结果:
30.3 - 20.2 =10.1
最小值永远是最后一个值,但感觉没有错啊。答案是直接用的数组,但我想试试用指针解决,然而出现了这个问题。