签到题
时间限制 : 1sec / 空间限制: 256MB
题意:
输入一些整数,求出他们的最小值,最大值和平均值(保留3位小数)。
输入:
第一行一个数字n,表示输入的数字的个数;
第二行n个整数,每两个数字之间用一个空格分隔。
保证1 <= n <= 1000,每个数字大于等于0,小于等于1000.
输出:
第一行两个整数,用一个空格分隔,分别表示最小值,最大值;
第二行一个浮点数,表示这些数字的平均值,保留3位小数。
样例一:
输入:
5
834 164 473 245 703
输出:
164 834
483.800
样例二:
输入:
3
749 414 649
输出:
414 749
604.000
C
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
int i;
int mx = 0,mi = 1001;
int sum = 0;
for (i = 1;i <= n;i++)
{
int x;
scanf("%d",&x);
sum += x;
if (x > mx) mx = x;
if (x < mi) mi = x;
}
printf("%d %d\n%.3f\n",mi,mx,1.0 * sum / n);
return 0;
}
C++
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
int n;
int temp;
double sum = 0;
int max = -1;
int min = 2000;
cin>>n;
for(int i = 0; i < n; i++){
cin>>temp;
if(temp > max){
max = temp;
}
if(temp < min){
min = temp;
}
sum+=temp;
}
cout<<min<<" "<<max<<endl;
cout<<fixed<<setprecision(3)<<(sum*1.0)/n;
return 0;
}
java
import java.util.Scanner;
public class Main {
@SuppressWarnings("resource")
public static void main(String[] args) {
int n;
Scanner input = new Scanner(System.in);
n = input.nextInt();
int min = Integer.MAX_VALUE;//最小值设置成最大的
int max = Integer.MIN_VALUE;//最大值设置成最小的
int temp;
int sum = 0;
for(int i = 0; i < n; i++) {
temp = input.nextInt();
sum += temp;//累加
if(temp > max) {//判断更新最大值
max = temp;
}
if(temp < min) {//判断更新最小值
min = temp;
}
}
System.out.println(min+" "+max);
System.out.printf("%.3f",(sum*1.0)/n);
}
}