首页 > 其他分享 >最大值,最小值,平均值(C语言)

最大值,最小值,平均值(C语言)

时间:2024-12-07 16:29:30浏览次数:4  
标签:min int max 最大值 float C语言 最小值 scores avg

今天来做一道比较经典的题目

求最大值,最小值和平均值,常用于信息统计;

以成绩为例:

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

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

一般要用到数组,选择和循环语句

原理:数组存储数据

通过循环遍历数据

通过选择比较数据求出大小

#include <stdio.h>
int main ()
{
    int n; 
    scanf ("%d",&n); //输入信息个数
    float score [100] = {0};//这里我们初始化的数组大小为100
    float max = 0.0f;//成绩的最小值为0,把最大值初始化为零方便信息的更替
    float min = 100.0f;//同理
    float sum = 0.0f;
    float avg = 0.0f;
    int i ;
    for (i = 0;i<n;i++)//循环实现数据的录入
    {
        scanf ("%f",&score[i]);
        sum +=score[i];//求和
        avg =sum / n;
        if (score[i] > max)
        {
            max = score[i];//最大值的更替
        }
        if(score[i] < min)
        {
            min = score [i];//最小值的更替
        }
    }
    printf ("%.2f %.2f %.2f",max,min,avg);//保留两位小数
}

用函数来实现

#include <stdio.h>

// 函数声明
void readScores(float scores[], int n);
void calculateStats(float scores[], int n, float* max, float* min, float* avg);

int main() {
    int n;
    scanf("%d", &n);
    float score[100] = { 0 };
    float max = 0.0f, min = 100.0f, avg = 0.0f;

    // 调用函数读取成绩
    readScores(score, n);

    // 调用函数计算统计数据
    calculateStats(score, n, &max, &min, &avg);

    // 输出结果
    printf("%.2f %.2f %.2f", max, min, avg);

    return 0;
}

// 读取成绩的函数
void readScores(float scores[], int n) {
    int i;
    for (i = 0; i < n; i++) {
        scanf("%f", &scores[i]);
    }
}

// 计算最大值、最小值和平均值的函数
void calculateStats(float scores[], int n, float* max, float* min, float* avg) {
    int i;
    float sum = 0.0f;
    for (i = 0; i < n; i++) {
        sum += scores[i];
        if (scores[i] > *max) {
            *max = scores[i];
        }
        if (scores[i] < *min) {
            *min = scores[i];
        }
    }
    *avg = sum / n;
}

一定要先申明需要用到的所有函数和成员,不然容易写漏,也方便检查;用函数要注意函数调用的先后顺序和数据录入的顺序,避免产生冲突。同时函数的命名尽量有意义,建议用英文命名,方便他人阅读和改进。

标签:min,int,max,最大值,float,C语言,最小值,scores,avg
From: https://blog.csdn.net/qq_74737616/article/details/144311674

相关文章

  • 实验5 c语言指针应用编程
    实验任务1task1_1.c1#include<stdio.h>2#defineN534voidinput(intx[],intn);5voidoutput(intx[],intn);6voidfind_min_max(intx[],intn,int*pmin,int*pmax);78intmain(){9inta[N];10intmin,max;1112......
  • PTA6-1希尔排序的实现 C语言
    6-1希尔排序的实现分数7入门作者DS课程组单位临沂大学本题要求实现一趟希尔排序函数,待排序列的长度1<=n<=1000。函数接口定义:voidShellInsert(SqListL,intdk);其中L是待排序表,使排序后的数据从小到大排列。类型定义:typedefintKeyType;typedefstruct......
  • C语言的循环
    在C语言中,循环结构用于重复执行一段代码。主要有三种循环类型: for 循环、 while 循环和 do-while 循环。  for 循环 -语法是 for(初始化;条件判断;更新表达式) 。例如 for(inti=0;i<10;i++) ,初始化部分 inti=0 定义循环变量并赋初值;条件判......
  • 在C语言中,`for`、`while`和`do-while`循环的执行效率有何不同?
    在现代编译器和处理器环境下, for 、 while 和 do-while 循环本质上是等价的,执行效率通常没有显著差异。 它们最终都会被编译成相似的机器指令来实现循环操作。但在某些极端情况下可能会有微小差别。 例如, for 循环在初始化、条件判断和迭代语句都很简单明了的......
  • 洛谷 P1359 租用游艇 C语言 记忆化搜索
    题目:https://www.luogu.com.cn/problem/P1359题目描述长江游艇俱乐部在长江上设置了 n 个游艇出租站 1,2,⋯ ,n。游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站 i 到游艇出租站 j 之间的租金为r(i,j)(1≤i<j≤n)。试设计一个算......
  • 洛谷 P1553 数字反转(升级版) C语言 stl
    题目:https://www.luogu.com.cn/problem/P1553题目背景以下为原题面,仅供参考:给定一个数,请将该数各个位上数字反转得到一个新数。这次与NOIp2011普及组第一题不同的是:这个数可以是小数,分数,百分数,整数。整数反转是将所有数位对调;小数反转是把整数部分的数反转,再将小数部分......
  • C语言专题之get相关函数介绍
    欢迎浏览,以下是对C语言中相关“get”函数结合函数原型的详细介绍:一、getchar函数 1.函数原型:intgetchar(void); 2.详细介绍:   1.这个函数不需要参数,它从标准输入流(通常是键盘输入)读取一个字符。   2.函数返回值为读取到的字符的ASCII码值(以int类型返......
  • C语言:指针基础指导
    1:任何一个地址变量,在没有被赋值之前,没有得到实际的变量地址之前,不能通过*去访问任何数据。一.理解一个变量的存储过程和原理(必须清楚掌握)1、两个操作:(1)inta:在栈中定义了一个变量a,并且在内存中开辟了一个int类型大小的空间,即4个字节,然后让a指向这篇空间,也就是这篇空间,计......
  • C语言第六部分(循环结构)
    C语言循环结构什么是循环代码的重复执行,就叫做循环。循环的分类无限循环:其实就是死循环,程序设计中尽量避免无限循环。程序中的无限循环必须可控。有限循环:循环限定循环次数或者循环的条件。循环的构成循环条件循环体当型循环的实现特点:先判断,后执行,如果条件不满足,......
  • 初探C语言|浅谈函数的递归
    文章目录1.什么是递归?2.递归的两个必要条件代码示例3.两个例题(阶乘和斐波那契)发现问题为什么呢?stackoverflow(栈溢出)常规写法(迭代)4.递归与迭代相比较欢迎讨论:如有错误或不足,欢迎指正和建议,本人主打“听劝”。当然,如有疑问,也期待你在评论区留言互动。点赞+关注:如果......