首页 > 试题广场 >

统计成绩

[编程题]统计成绩
  • 热度指数:60224 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
输入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
#include <stdio.h>
int main()
{
    int n;
    double sum=0,x,max=-1,min=101,avg;
    scanf("%d",&n);
    int m=n;
    while(n--){
        scanf("%lf",&x);
        sum+=x;
        if(x>max) max=x;
        if(x<min) min=x;
    }
    avg=sum/m;
    printf("%.2f %.2f %.2f\n",max,min,avg);
}

发表于 2020-04-10 20:31:20 回复(3)
n = int(input());
score_list = list(map(float,input().split(" ")));

print("{:.2f} {:.2f} {:.2f}".format(max(score_list),min(score_list),sum(score_list)/n))
发表于 2022-01-12 23:44:24 回复(0)
#include 
//思路:
//     1.用一个float数组a[100]来存储输入的各个科目成绩,
//     2.再定义一个指针变量保存数组的首地址,
//     3.再通过输入科目数n的值,用一个for循环按顺序存到数组里;
//     4.如何找出最大值和最小值:用冒泡排序;
//     5.如何求出平均值:遍历数组累加值在除以科目数n.
int main()
{
    int n=0;
    int i=0;
    float a[100]={0};
    float * p=&a;
    float max=0;
    float min=0;
    float ave=0;
    scanf("%d",&n);
    for(i=0;i<n;i++)//将科目成绩存到数组里
    {
        scanf("%f",p);//注意,这里数组p就是数组的首地址,不用取地址&
        p++;
    }
    //接下来用冒泡排序找出最大值和最小值,只需要一趟,比较n-1次就行
    //冒泡:有两种方式,
    //    1.将最小的先冒出来
    //    2.将最大的先冒出来
    max=a[0];//将max设为第一个元素
    min=a[0];//将min设为第一个元素
    for(i=0;i<n-1;i++)
    {
        if(a[i]<=a[i+1])
        {
            max=max<=a[i+1]?a[i+1]:max;//比较两个数的最大值,再和max比较,找出最大值存到max里
            min=min<=a[i]?min:a[i];//比较上一轮的最小值和这一轮的最小值两个数的最小值,找出最小值
        } 
        else
        {   max=max>a[i]?max:a[i];
            min=a[i+1]<min?a[i+1]:min;
        }
       // ave=ave+*p++;//这种写法错了,在之前P指针已经指向最后一个元素了
        ave+=a[i];
    }

    ave=(ave+a[n-1])/n;
    printf("%.2f %.2f %.2f",max,min,ave);
    return 0;
发表于 2022-03-28 16:21:03 回复(2)
啦啦啦
n = eval(input())
s = list(map(eval,input().split()))
print('{:.2f} {:.2f} {:.2f}'.format(max(s),min(s),sum(s)//n))


发表于 2021-12-22 13:19:46 回复(0)
#include <stdio.h>
int main()
{
    int n, i;
    double max = 0,min = 100, sum = 0;
    double a[105];
    scanf("%d", &n);
    for(i=0;i<n;i++)
    {
        scanf("%lf", &a[i]);
        if(a[i]>max)
            max = a[i];
        if(a[i]<min)
            min = a[i];
        sum+=a[i];
    }
    printf("%.2lf %.2lf %.2lf", max, min, sum/n);
    return 0;
}

发表于 2022-03-07 18:12:39 回复(0)
#include <stdio.h>

int main() {
     int num;
     scanf("%d",&num);
     float arr[num];
     for(int i=0;i<num;i++){
        scanf("%f",&arr[i]);
     }
       float max=0.00;
       float min=100.00;
       float sum=0.00;
      for(int j=0;j<num;j++){
        if(arr[j]>max){
            max=arr[j];
        }
        if(arr[j]<min){
            min=arr[j];
        }
       sum+=arr[j];
    }
    printf("%.2f %.2f %.2f",max,min,sum/num);
    return 0;
}

发表于 2022-12-20 14:57:39 回复(0)
#include <stdio.h>
int main() {
   int a;
   scanf("%d",&a);
   float b,c,d,g,h;
   scanf("%f%f%f%f%f",&b,&c,&d,&g,&h);
   float i=b>c?(b>d?b:d):(c>d?c:d);//存放bcd的最大值
   float max=i>g?(i>h?i:h):(g>h?g:h);//i与jh比较
   float j=b<c?(b<d?b:d):(c<d?c:d);//存放bcd的最小值
   float mini=j<g?(j<h?j:h):(g<h?g:h);//j与jh比较
   float average=(b+c+d+g+h)/5;
   printf("%.2f %.2f %.2f",max,mini,average);
    return 0;
}
发表于 2022-09-28 13:48:57 回复(1)
#include<iostream>
using namespace std;
#include<vector>
#include<algorithm>
#include<iomanip>

int main()
{
    int n;
    cin >> n;
    vector<float> scores;
    float sum = 0;
    for (int i = 0; i<n; i++)
    {
        float score;
        cin >> score;
        scores.push_back(score);
        sum += score;
    }
    sort(scores.begin(), scores.end());
    cout <<  setiosflags(ios::fixed) << setprecision(2)<< scores.back() << " " << scores.front() << " " << sum / n << endl;
    return 0;
}
发表于 2022-04-21 14:20:49 回复(0)
发表于 2021-10-27 11:40:17 回复(0)
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int i, n;
    float *score;
    float max, min, aver;
    
    while (scanf("%d", &n) != EOF && (n >= 1 && n <= 100))
    {
        score = (float *)malloc(n * sizeof(float));
        if (NULL == score)
        {
            fprintf(stderr, "Memory allocation failed!\n");
            exit(EXIT_FAILURE);
        }
        for (i = 0; i < n; i++)
        {
            scanf("%f", &score[i]);
        }
        max = min = aver = score[0];
        for (i = 1; i < n; i++)
        {
            max = max < score[i] ? score[i] : max;
            min = min > score[i] ? score[i] : min;
            aver += score[i];
        }
        aver /= n;
        printf("%.2f %.2f %.2f\n", max, min, aver);
        free(score);
        score = NULL;
    }
    
    return 0;
}
//简单但是要注意内存分配的问题;
编辑于 2020-04-18 22:14:33 回复(0)
#include <stdio.h>

int main() 
{
    float min = 0.0f;
    float max = 0.0f;
    float ave = 0.0f;
    float score = 0.0f;
    int n = 0;
    int i = 0;

    scanf("%d", &n);

    scanf("%f", &score);
    min = score;
    max = score;
    ave += score;
    
    i = n;
    while(--i)
    {
        scanf("%f", &score);
        min = min < score ? min : score;
        max = max > score ? max : score;
        ave += score;
    }

    ave /= n;
    printf("%.2f %.2f %.2f\n", max, min, ave);
    
    return 0;
}

编辑于 2024-03-02 20:27:15 回复(0)
#include <stdio.h>

int main() {
    double n,score,max,sum=0.0;
    double min=100.0;
    scanf("%lf",&n);
    getchar();
    for(int i=0;i<n;i++)
    {
        scanf("%lf",&score);
        sum+=score;
        if(score>max)
        {
            max=score;
        }
        if(score<min)
        {
            min=score;
        }
    }
    printf("%.2lf %.2lf %.2lf",max,min,sum/n);
    return 0;
}

发表于 2024-01-22 22:24:30 回复(0)
#include <stdio.h>

int main() {
    int i,n;
    float sum,  max = 0, min = 100.00;
    float ch[100];
    scanf("%d",&n);
    printf("\n");
    for(i = 0; i <= n; i++)
    {
        scanf("%f", &ch[i]);
        sum += ch[i];
        if(ch[i] > max)
        {
            max = ch[i];
        }
        if(ch[i] < min)
        {
            min = ch[i];
        }
    }
    printf("%.2f %.2f %.2f", max, min ,sum/n);
    return 0;
}
这里min的值为什么求不出来
发表于 2023-12-09 23:38:16 回复(0)
#include <stdio.h>
void bubble_sort(double *arr, int len);
int main(void)
{
    int subject = 0;
    double sum = 0;
    scanf("%d", &subject);         // The length of array
    double subject_score[subject]; // Initialize the array

    for (int i = 0; i < subject; i++)
    {
        scanf("%lf", &subject_score[i]);
        sum += subject_score[i];
    }

    bubble_sort(subject_score, subject);
    printf("%.2lf %.2lf %.2lf\n", subject_score[0], subject_score[subject - 1], sum / subject);
    return 0;
}

// @brief bubble sort(from min to max)
void bubble_sort(double *arr, int len)
{
    double temp_val = 0;
    for (int i = 0; i < len - 1; i++)
    {
        for (int j = 0; j < len - i - 1; j++)
        {
            if (arr[j] > arr[j + 1])
            {
                temp_val = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp_val;
            }
        }
    }
}

发表于 2023-01-15 14:38:58 回复(0)
#include <stdio.h>
int main()
{
    float max = 0;
    float min = 999;
    float sum = 0;

    int n = 0;
    scanf("%d", &n);
    while (n--)
    {
        float a;
        scanf("%f", &a);


        //总和
        sum += a;
        //最大值
        if (max < a)
            max = a;
        //最小值
        if (min > a)
            min = a;
    }

    //输出
    printf("%.2f %.2f %.2f", max, min, sum / 5.0);
    return 0;
}

发表于 2022-12-26 18:12:18 回复(0)
int n,i,j;
    float temp,k;
    scanf("%d",&n);
    float a[n];
    for(i=0;i<n;i++)
    {
        scanf("%f",&a[i]);
        k+=a[i];
    }
    for(i=0;i<n-1;i++)
    {
        for(j=0;j<n-1-i;j++)
        {
            if(a[j]>a[j+1])
            {
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    }
        
    printf("%.2f %.2f %.2f",a[n-1],a[0],k/5);*/

发表于 2022-12-13 14:02:16 回复(0)
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
    int a;
    float max, min, agv, total, temp;
    cin >> a;
    cin >> temp;
    min = temp;
    max = temp;
    total = temp;
    for (int i = 0; i < a-1; i++){
        cin >> temp;
        total += temp;
        if (temp > max)
            max = temp;
        if (temp < min)
            min = temp;
    }
    agv = total / a;
    cout << fixed << setprecision(2) << max << ' ' << min << ' ' << agv << endl;
    return 0;
}

发表于 2022-08-14 19:07:13 回复(0)
真特喵是个大聪明哈哈
#include<stdio.h>
int main(){
    int n;
    scanf("%d",&n);
    double max=0,min=0,average=0,sum=0,b=1;
    for(int i=0;i<n;i++){
        float x;
        scanf("%f",&x);
        if(min<x&&b==1){
            min = x;
            b=0;
        }
        if(x>max) max = x;
        if(x<min){
            min = x;
        }
        sum+=x;
    }
    average = sum/n;
    printf("%.2lf %.2lf %.2lf",max,min,average);
}
发表于 2022-06-11 19:30:38 回复(0)
复杂点哪儿出问题了,帮忙看看。
#include<stdio.h>
int main()
{
    int j,i,n,t;
    scanf("%d\n",&n);
    float a[100],average,sum=0;
    for(i=1;i<=n;i++)
        scanf("%f ",&a[i]);
    
    for(i=1;i<=n-1;i++)
        for(j=1;j<=n-i;j++)
            if(a[j]>a[j+1])
        {
            t=a[j];
            a[j]=a[j+1];
            a[j+1]=t;
        }
   
    for(i=1;i<=n;i++)
    {
        sum=sum+a[i];
    }
    average=sum/n;
    
    printf("%.2f %.2f %.2f",a[n-1],a[0],average);
    
    return 0;
}

发表于 2022-04-25 10:52:07 回复(0)
n = int(input())
score = list(map(float,input().split()))
print('{:.2f} {:.2f} {:.2f}'.format(max(score), min(score), sum(score)/n))

发表于 2022-03-25 15:46:27 回复(0)