首页 > 试题广场 >

统计成绩

[编程题]统计成绩
  • 热度指数: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;
    scanf("%d",&n);
    double arr[n],min,max,average;
    for (int i=0;i<n;i++) {
        scanf("%lf",&arr[i]);
    }
    for (int i=0;i<n;i++) {
        for (int s=i;s<n;s++){
            if (arr[s]>arr[i]) {
                double t=arr[i];
                arr[i]=arr[s];
                arr[s]=t;
            }
        }
        sum+=arr[i];
    }
    max=arr[0];
    min=arr[n-1];
    average=1.0*sum/n;
    printf("%.2lf %.2lf %.2lf",max,min,average);
    return 0;
}

发表于 2025-11-26 21:43:08 回复(0)
#include <stdio.h>

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

发表于 2025-10-28 21:21:01 回复(0)
#include <stdio.h>

int main() {
    int a;
    float b,c,d,e,f;
    scanf("%d\n ",&a);
    scanf("%f %f %f %f %f",&b,&c,&d,&e,&f);
    float max= b;
    max =(c > max )? c : max;
    max =(d > max )? d : max;
    max =(e > max )? e : max;
    max =(f > max )? f : max;

    float min= b;
    min = (c < min) ? c :min;
    min = (d < min) ? d :min;
    min = (e < min) ? e :min;
    min = (f < min) ? f :min;

    float sum = b + c + d + e + f;
    float avg = sum / a;
    printf("%.2f %.2f %.2f",max,min,avg);

    return 0;
}
从一个初学者的角度来看,难点在于怎么得出最大值与最小值,因为没学到数组,判断,循环,后来想到了三元换算符,只要用第一个初始值挨个去比较,按照条件更新大小就能得出最大值和最小值。嗯。
发表于 2025-06-16 15:17:58 回复(0)
#include <stdio.h>
#include <stdlib.h>
int com(const void*e1,const void*e2)
{
    return *(int*)e1-*(int*)e2;
}
int main() {
    int n;
    float sum=0.0;
    scanf("%d",&n);
    float arr[100];
    for(int i=0;i<n;i++)
    {
        scanf("%f",&arr[i]);
        sum+=arr[i];
    }
    qsort(arr,n,4,com);
    printf("%.2f %.2f %.2f",arr[n-1],arr[0],sum/=n);

    return 0;
}
发表于 2025-03-05 22:48:12 回复(0)
#include<stdio.h>
int main(){
    int n;
    float max=0.0,low=100.0,av=0.0,sum=0.0;
    scanf("%d\n",&n);
    float a[n];
    for(int i=0;i<n;i++){
         scanf("%f",&a[i]);
         sum=sum+a[i];
         if(a[i]>max){
            max=a[i];
         }
         if(a[i]<low){
            low=a[i];
         }
    }
    av=sum/n;

   printf("%.2f %.2f %.2f",max,low,av);
   return 0;

}
发表于 2025-02-11 14:03:13 回复(1)
#include <stdio.h>
#include <stdlib.h>
int main() {
    int a,b, i = 0;
    float max = 0,sum = 0,min = 0;
    float *score = NULL;
    if (scanf("%d", &a) != EOF) { // 注意 while 处理多个 case
        // 64 位输出请用 printf("%lld") to
        b = a;
        score  = malloc(a * sizeof(float));
         if (score == NULL) {
            printf("内存分配失败\n");
            return 1;
        }
        while(a--)
        {
        scanf("%f",score + i);
        sum += score[i];
        i++;
        }
        for(i = 0;i <b ; i++)
        {
            if(score[i] > max)
            {
                max = score[i];
            }
        }
        min = score[0];
        for(i = 0;i < b; i++)
        {
            if(score[i] < min)
            {
                min = score[i];
            }
        }
        printf("%.2f %.2f %.2f\n", max,min,sum / b );
        free(score);
    }
    return 0;
}
发表于 2025-01-19 20:17:51 回复(0)
#include <stdio.h>
void Highest(float grade[],int n){
    float highest = grade[0];
    for(int a = 0;a < n-1;++a){
        if(highest <= grade[a+1]){
            highest = grade[a+1];
        }
    }
    printf("%.2f ",highest);
}

void Lowest(float grade[],int n){
    float lowest = grade[0];
    for(int b = 0;b < n-1;++b){
        if(lowest >= grade[b+1]){
            lowest = grade[b+1];
        }
    }
    printf("%.2f ",lowest);
}

void Average(float grade[],int n){
    float average = 0.0f;
    float total = 0.0f;
    for (int c = 0; c <= n-1; ++c){
        total = total + grade[c];
    }
    average = total/n;
    printf("%.2f",average);
}

int main() {
    int n = 0;
    scanf("%d",&n);
    float grade[100]={0.0f};
    int i = 0,j = n;
    while (j){
        scanf("%f",&grade[i]);
        ++i;
        --j;
    }
    Highest(grade,n);
    Lowest(grade,n);
    Average(grade,n);
    return 0;
}
发表于 2025-01-03 11:29:32 回复(0)
请教各路大佬,这个代码哪里出现了问题


发表于 2024-12-21 13:26:29 回复(0)
#include <stdio.h>

int main() {
    float c[10];
    float max, min, pj = 0;
    int n;
    scanf("%d", &n);
    for(int i = 0; i < n; i++)
    {
        scanf("%f", &c[i]);
    }

    max = c[0];
    min = c[0];

    for(int i = 0; i < n; i++)
    {
        if(max < c[i])
        {
            max = c[i];
        }
    }
    for(int i = 0; i < n; i++)
    {
        if(min > c[i])
        {
            min = c[i];
        }
    }
    for(int i = 0; i <= n; i++)
    {
        pj += c[i];
    }

    pj  = pj / 5;
    printf("%.2f %.2f %.2f", max, min, pj);

    return 0;
}
发表于 2024-12-06 17:52:16 回复(0)
#include<stdio.h>


int main()
{
    int  n = 0;
    int i = 1;
    float sum = 0;
    float averge = 0;
    float max = 0;
    float min = 100.0;
    float result = 0;
    
    scanf("%d",&n);
    while(i<=n)
    {
       scanf("%f",&result); //输入数据
       sum = sum + result; // 求和
       if(max <= result)  // 筛选较大值
       {  
          max = result ; 
       }
       if(min >= result)
         {
           min=result;

         }

       i++;

    }
    
       averge = sum / n;

       printf("%.2f %.2f %.2f",max,min,averge);
    
    return 0;
}
发表于 2024-12-06 09:31:29 回复(0)
int main() {
	int n;
	float arr[5];
	float max = 0.0, min = 100.0, sum = 0.0, avg = 0.0;

	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		scanf("%f", &arr[i]);
		sum += arr[i];
		if (arr[i] > max) max = arr[i];
		if (arr[i] < min) min = arr[i];
	}

	avg = sum / (float)n;

	printf("%.2f %.2f %.2f", max, min, avg);

	return 0;
}

发表于 2024-08-06 11:01:59 回复(0)
#include <stdio.h>

int main() {
    int n = 0;
    scanf("%d",&n);
    float maxs = 0;
    float mins = 0;
    float sum = 0;
    float average = 0;
    int i = 1;
    float input = 0;

    while(i<=n)
    {
        scanf("%f",&input);
        sum += input;
        if(i == 1)
        {
            maxs = input;
            mins = input;
        }
        if(i>1)
        {
            if(maxs<=input)
            {
                maxs = input;
            }
            if(mins>=input)
            {
                mins = input;
            }
        }
        i++;
    }
    average = sum/n;
    printf("%.2f %.2f %.2f\n",maxs,mins,average);
    return 0;
}
纯小白
发表于 2024-07-25 12:06:44 回复(0)
#include <stdio.h>

int main() {
    int a,i=0;
    scanf("%d",&a);
    float arr[a];
    while(i<a)
    {
        scanf("%f",&arr[i]);
        i++;
    }
    float max,min,sum=arr[0];
    max=arr[0];
    min=arr[0];
    i=i-a;
    while(i<a-1)
    {
        if(arr[i+1]>max)max=arr[i+1];
        if(arr[i+1]<min)min=arr[i+1];
        sum=sum+arr[i+1];
        i++;
    }
    float b=sum/a;
    printf("%.2f %.2f %.2f",max,min,b);
    return 0;
}
是bug吧,这一定是bug吧,为什么在这里面数组表达式可以是变量
发表于 2024-07-20 10:49:10 回复(0)
有大佬帮看看不,我在Visual Studio上编译能出这结果‘到这上面来就不行了啊
#include <stdio.h>
float aaa(float arr[], int n)
{
    int i = 0;
    float max = arr[0];
    for (i = 1; i < n; i++)
    {
        if (max < arr[i])
        {
            max = arr[i];
        }

    }
    return max;
}
float bbb(float arr[], int n)
{
    int i = 0;
    float min = arr[0];
    for (i = 1; i < n; i++)
    {
        if (min > arr[i])
        {
            min = arr[i];
        }

    }
    return min;
}
float ccc(float arr[], int n)
{
    int i = 0;
    float a = 0;
    for (i = 0; i < n; i++)
    {
        a = a + arr[i];
    }

    return a/n;
}
int main() {
    int n = 0;
    scanf("%d\n", &n);
    float arr[] = { 0 };
    int i = 0;
    for (i = 0; i < n; i++)
    {
        scanf("%f", &arr[i]);
    }
    printf("%.2lf %.2lf %.2lf", aaa(arr, n), bbb(arr, n), ccc(arr, n));

    return 0;
}

发表于 2024-07-17 12:52:02 回复(0)
#include <stdio.h>

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


    return 0;
}

发表于 2024-06-17 23:17:12 回复(0)
#include <stdio.h>

int main()
{
	int n = 0;
	float arr[5] = { 0 };
	scanf("%d", &n);
	scanf("%f %f %f %f %f", &arr[0], &arr[1], &arr[2], &arr[3], &arr[4]);

	if(n >= 0 && n <= 100)
    {
        ;
    }

	float max = arr[0];
	float min = arr[0];
	int i = 0;
	float average = 0.0f;
	for (i = 0; i < 5; i++)
	{
		if (max < arr[i])
			max = arr[i];

		if (min > arr[i])
			min = arr[i];

		average += arr[i];
	}
	printf("%.2f %.2f %.2f", max, min, average / 5.0f);
	return 0;
}

发表于 2024-03-28 22:51:28 回复(0)
#include <stdio.h>
void initdata(float a[],int len)
{
    for(int i=0;i<len;i++)
    {
        scanf("%f",&a[i]);
    }
}
void sortdata (float a[],int len)
{
    float temp;
    for(int i=0;i<len-1;i++)
    {
        for(int j=0;j<len-i-1;j++)
        {
            if(a[j]>a[j+1])
            {
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    }

}

void print(float a[],int len)
{
    float averdata,sum=0;
    for(int i=0;i<len;i++)
    {
        sum +=a[i];
    }
    averdata=sum/len;
    printf("%.2f %.2f %.2f",a[len-1],a[0],averdata);
}

int main() {
    int len;
    scanf("%d",&len);
    float a[len];
    initdata(a,len);
    sortdata(a,len);
    print(a,len);
    return 0;
}
编辑于 2024-03-24 17:06:52 回复(0)
#include <stdio.h>

int main() {
    int n, i;
    float max = 0.0, min = 0.0, sum = 0.0;
    float arr[10] = {0};
    scanf("%d", &n);
    for (i = 0; i < n; i++) {
        scanf("%f", &arr[i]);
    }
    min = arr[0];
    max = arr[i];
    for (i = 0; i < n; i++) {
        if (arr[i] > max)
            max = arr[i];
        if (arr[i] < min)
            min = arr[i];
        sum += arr[i];
    }

    printf("%.2f ", max);
    printf("%.2f ", min);
    printf("%.2f ", sum / n);
    return 0;
}
编辑于 2024-03-19 16:46:03 回复(0)