问题分析:算式a-b,要使得值最大,那么,要求被减数a最大,减数b最小,从而使得a-b最大。从数列中,找出最大的数,存入max变量;找出最小的数,存入min变量。显然,max-min的值是最大的。
输入:两行,第一行一个正整数,表示数列中的实数个数n;
第二行,n个数,表示数列的n个实数;
输出:一行一个数,表示数列的最大差值(保留2位小数)。
#include <stdio.h>
int main()
{
double arr[50];
int n, i;
double max, min;
scanf("%d", &n);
for (i = 0; i < n; i++)
{
scanf("%lf", &arr[i]);
if (i == 0) max = min = arr[0];
if (max < arr[i]) max = arr[i];
if (min > arr[i]) min = arr[i];
}
printf("%.2lf", max - min);
}
这个问题分析的一下可以知道解决问题的思路
1 先用冒泡排序,比如arr[0]放最小,arr[49]放最大
2 打印 arr[49]- arr[0]
#include<stdio.h>
int main(){
int n,i;
double a,b,min=0,max=0,num=0;
scanf("%d\n",&n);
scanf("%lf",&a);
scanf("%lf",&b);
if(a>b){
max=a;
min=b;
}
else if(a<=b){
max=b;
min=a;
}
for(i=2;i<n;i++){
scanf("%lf",&a);
if(a>max){
max=a;
}
else if(a<min){
min=a;
}
}
num=max-min;
printf("%.2f",num);
return 0;
}