列表

详情


BC33. 统计成绩

描述

输入n科成绩(浮点数表示),统计其中的最高分,最低分以及平均分。

数据范围: , 成绩使用百分制且不可能出现负数

输入描述

两行,

第1行,正整数n(1≤n≤100)

第2行,n科成绩(范围0.0~100.0),用空格分隔。

输出描述

输出一行,三个浮点数,分别表示,最高分,最低分以及平均分(小数点后保留2位),用空格分隔。

示例1

输入:

5
99.5 100.0 22.0 60.0 88.5

输出:

100.00 22.00 74.00

原站题解

C 解法, 执行用时: 1ms, 内存消耗: 232KB, 提交时间: 2020-12-13

#include<stdio.h>
int main()
{
    int n,i;
    double min,max,aver,sum=0,a[100];
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%lf",&a[i]);
    min=max=a[0];
    for(i=0;i<n;i++)
    {
        if(max<a[i])
        {max=a[i];}
        if(min>a[i])
        {min=a[i];}
        sum+=a[i];
    }
    aver=sum/n;
    printf("%.2lf %.2lf %.2lf",max,min,aver);
}

C 解法, 执行用时: 1ms, 内存消耗: 256KB, 提交时间: 2020-07-13

#include<stdio.h>
#include <stdlib.h> 

float Max(float *p,int q);
float Min(float *p,int q);
float Ave(float *p,int q);

int main()
{
    int n;
    scanf("%d",&n);
    float *a = (float *)malloc(n * sizeof(float)); 
    for(int i=0;i<n;i++)
        scanf("%f",&a[i]);
    float max,min,ave;
    max=Max(a,n);
    min=Min(a,n);
    ave=Ave(a,n);
    printf("%.2f %.2f %.2f",max,min,ave);
    return 0;
}
float Max(float *p,int q)
{
    float max;
    for(int m=0;m<q;m++)
    {
        max=p[m];
        for(int n=0;n<q-1;n++)
        {
            if(max<p[n+1])
                max=p[n+1];
        }
    }
    return  max;
}
float Min(float *p,int q)
{
    float min;
    for(int m=0;m<q;m++)
    {
        min=p[m];
        for(int n=0;n<q-1;n++)
        {
            if(min>p[n])
                min=p[n];
        }
    }
    return  min;
}
float Ave(float *p,int q)
{
    float sum=0;
    for(int i=0;i<q;i++)
    {
        sum+=p[i];
    }
    return sum/q;
}

C 解法, 执行用时: 1ms, 内存消耗: 296KB, 提交时间: 2020-12-13

#include "stdio.h"

int main(){
    
    int n;
	double max,min;
	double average=0,sum;
	int i=0;
	//printf("输入数组长度:");
	scanf("%d",&n);
	if(n>0) {
		double arr[n+1];
	//printf("输入数组元素:");
		for(i=0;i<n;i++)
		{
		scanf("%lf",&arr[i]);
	 	} 
	 //求平均数
	  for(i=0;i<n;i++)
		{
		sum=sum+arr[i];//数组总和 
	 	} 
	 	average=1.0*sum/n;//总和除个数得平均数
		 max=arr[0];
	  for(i=0;i<n;i++)//求最大值 
		{
			if(max<arr[i]) max=arr[i];
	 	} 
	 	min=arr[0];
	 	for(i=0;i<n;i++)//求最小值 
		{
			if(min>arr[i]) min=arr[i];
	 	} 
	}
	 printf("%.2lf %.2lf %.2lf",max,min,average);
    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 300KB, 提交时间: 2021-09-19

#include<stdio.h>
int main(){
int n;
    scanf("%d",&n);
    float a[n];
    float min=100.0,max=0.0,sum=0.0;
    for(int i=0;i<n;i++){
        scanf("%f ",&a[i]);
        sum+=a[i];
    }
     for(int i=0;i<n;i++){
    if(max<a[i])
        max=a[i];
     }
     for(int i=0;i<n;i++){
        if(min>a[i])
            min=a[i];
     }
    
    printf("%.2f %.2f %.2f",max,min,sum/n);
}

C 解法, 执行用时: 1ms, 内存消耗: 304KB, 提交时间: 2021-09-14

#include<stdio.h>
int main()
{
    int n,i;
    float arr[100],max,min,sum=0;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%f",&arr[i]);
    }
    max=min=arr[0];
    for(i=0;i<n;i++)
    {
        if(arr[i]>max)
            max=arr[i];
        if(arr[i]<min)
            min=arr[i];
        sum=sum+arr[i];
    }
    printf("%.2f %.2f %.2f\n",max,min,sum/n);
    return 0;
}

上一题