首先输入整数n(0<=n<=1000),紧接着在下一行连续输入n个数。
随后输出这一组数的最小值,和最大值。
提示:
输入的这n数,可以有小数也可以有负数。
输出之间用换行隔开。
输入要求
5
1 5 3 54 22
输出要求
1
54
参考程序:
#include<stdio.h>
int main(void){
int n;
scanf("%d",&n);
if(n==1){当n=1的时候
printf("0\n0");
}else if(n>=2){//当n>=2的时候
double a[n];//定义字符串
int i;
for(i=0;i<n;i++){进入循环
scanf("%lf",&a[i]); //输入字符串
}
double max=a[0];//定义一个最大值
double min=a[0];//定义一个最小值
for(i=0;i<n;i++){
if(a[i]>max){//
max=a[i];
}
if(a[i]<min){
min=a[i];
}
}
printf("%g\n%g",min,max);//输出实数去掉0
}else{
printf(" ");//输入0时输出
}
return 0;
}
解题思路:依据题目描述,需要输入一个整数n表示将取多少个数,并定义一个数组a表示储存了n个double类型的数据;
然后输入n个数,进入循环,在循环中定义一个量来接受输入的各各数,之后先定一个最大值和最小值,在将输入的数与之比较,如果后续输入值大于max,则将该值赋值给max,如果后续输入值小于min,则将该值赋值给min,因为数组中的数据不止一个n,所以要通过gor语句中的if语句找出数组中的max与min;
最后因为题目答案输入中出现的数据不局限于正整数,还有负数,一位小数等,因此用%g这种实数格式最后输出。