C 语言的平均、最大和最小程序

2023-12-07

所以我用 C 进行编码,我需要编写代码,从用户那里获取 n 个数字,并找到它们的最小值、最大值、平均值以及它们的值的平方和。到目前为止,我已经有了平均值和平方和部分,但最小值和最大值让我很困惑。

请记住,我还处于非常初级的水平,而且还没有达到数组。我所知道的只是逻辑运算符、函数、循环以及 stdlib.h、math.h 和 stdio.h 库的使用。

这是我到目前为止所拥有的。 当我在编译期间尝试放入 float 和 double 时,average 函数给我带来了很多问题,因此将其乘以 1.0 修复了这个问题。我拥有一切,只有最小和最大。我一直将最后一个条目作为我的最大值,将 0 作为我的最小值。

#include<stdio.h>
int main()
{
    float average;
    int i, n, count=0, sum=0, squaresum=0, num, min, max;


    printf("Please enter the number of numbers you wish to evaluate\n");
    scanf_s("%d",&n);

    printf("Please enter %d numbers\n",n);

    while(count<n)
    {
        min=0;
        max=0;

            if(num>max)
               max=num;
            if(num<min)
               min=num;

            scanf_s("%d",&num);

        sum = sum+num;
        squaresum = squaresum + (num*num);

        count++;
    }
        average = 1.0*sum/n;

    printf("Your average is %.2f\n",average);
    printf("The sum of your squares is %d\n",squaresum);    



    printf("Your maximum number is %d\n",max);
    printf("Your minimum number is %d\n",min);

return(0);
}

你的算法不太正确。下面是正确的实现:

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

int main(void)
{
    float average;
    int n, num, count = 0, sum = 0, squaresum = 0;
    int min = INT_MAX, max = INT_MIN;
    bool gotAnswer = false;

    /* Don't Let User Enter Wrong Input */
    while(!gotAnswer)
    {
        printf("Please enter the number of numbers you wish to evaluate: ");
        if(scanf_s("%d", &n) != 1)
        {
            /* User Entered Wrong Input; Clean Up stdin Stream*/
            while(getchar() != '\n')
            {
                 continue;
            }
        }
        else
        {
            /* User Input Was Good */
            gotAnswer = true;
        }
    }

    /* Clear stdin Stream Just In Case */
    while(getchar() != '\n')
        continue;

    while(count < n)
    {
        /* Don't Let User Enter Wrong Input */
        gotAnswer = false;
        printf("Enter number %d: ", count + 1);
        if(scanf_s("%d", &num) != 1)
        {
            /* User Entered Wrong Input; Clean Up stdin Stream */
            while(getchar() != '\n')
                continue;

            /* Let User Try Again */
            continue;
        }
        else
        {
            /* User Input Was Correct */
            gotAnswer = true;

            /* Clear stdin Stream Just In Case */
            while(getchar() != '\n')
                continue;
        }

        if(num > max)
            max = num;
        if(num < min)
            min = num;

        sum += num;
        squaresum += num * num;
        count++;
    }

    average = 1.0 * sum / n;

    printf("Your average is %.2f\n", average);
    printf("The sum of your squares is %d\n", squaresum);    
    printf("Your maximum number is %d\n", max);
    printf("Your minimum number is %d\n", min);

    system("pause");
    return 0;
}

我添加了错误检查和恢复。如果您对逻辑有任何疑问,请询问。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C 语言的平均、最大和最小程序 的相关文章

  • 如何使用 C# 中的参数将用户重定向到 paypal

    如果我有像下面这样的简单表格 我可以用它来将用户重定向到 PayPal 以完成付款
  • GLKit的GLKMatrix“列专业”如何?

    前提A 当谈论线性存储器中的 列主 矩阵时 列被一个接一个地指定 使得存储器中的前 4 个条目对应于矩阵中的第一列 另一方面 行主 矩阵被理解为依次指定行 以便内存中的前 4 个条目指定矩阵的第一行 A GLKMatrix4看起来像这样 u
  • 不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)

    正在编码视觉工作室2012并使用实体模型作为我的数据层 但是 当页面尝试加载时 上面提到的标题 我使用 Linq 语句的下拉控件往往会引发未处理的异常 下面是我的代码 using AdventureWorksEntities dw new
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • 如何获取另一个jar中的资源

    我有一个嵌入在捆绑包中的 jar 需要获取与其打包的资源 如下所示 MyBundle src lib MyEmbeddedJar src SomeClass someResource xml 我正在尝试从 SomeClass 访问 some
  • 使用 Macports 偷偷修补源代码

    几乎自从我使用 vim 并了解了足够多的 C 语言以来 我就自定义了已安装的 vim 以删除令我烦恼的 功能 当我改用带有 macports 的 Mac 时 我通过卸载以前的任何 vim 端口 获取源代码 手动编辑源代码 然后让 Macpo
  • Typescript 部分类型推断

    我对此感到困惑 无法弄清楚如何在没有第二个功能的情况下做到这一点 interface Fixed a number const fn
  • Rust HRTB 是相同的,但编译器表示一种类型比另一种更通用

    The 以下代码是完整的类型注释 fn enter lt a F R gt x a i32 func F gt R where F for lt b gt FnOnce b i32 gt R func x fn identity lt a
  • 访问类型声明对释放的影响

    在这两种情况下 在声明块之后 当然是在过程结束之前 是否以相同的方式释放内存 procedure allocation is type T Integer Access is access Integer begin declare P T
  • 如何将 HTML 内容设置到 iframe 中

    我有一个 HTML 字符串 Hello world 我想用 JavaScript 将其设置为 iframe 我试图像这样设置 HTML contentWindow document body innerHTML or contentDocu
  • 变量+=值和变量=变量+值之间的区别;

    例如 int a 10 a 1 5 这运行得很完美 但是 a a 1 5 这个作业说Type mismatch cannot convert from double to int 所以我的问题是 有什么区别 operator and ope
  • 无法加载现代控件 UI。升级到最新版本的 Android YouTube API

    我正在尝试使用Android Youtube API 一切正常 除了当我扩展时AppCompatActivity YoutubePlayer 的 UI 看起来很糟糕 我都尝试过YoutubePlayerFragment and Youtub
  • GIT - 如何合并分支?

    我们决定在公司使用 GIT 但现在遇到了问题 我们有多个分行 各具特色 现在我们需要的是合并这些分支并将其推送到 Master 我们如何使用自动替换来做到这一点 我们有分支 a 分支 b 分支 c 我们需要将它们全部放入主文件中 但如果出现
  • Java - 循环二维数组来查找不起作用的值的索引

    我知道我在这段代码中的某个地方犯了错误 但我无法弄清楚 玩家1 getId 返回值 1 只是为了让您知道 我正在尝试打印值为 1 的数组的索引 在代码末尾 我预计 currentX 为 0 currentY 为 0 但它们都是 9 任何帮助
  • Cx_Freeze 构建不包括 zip 文件中的 python 库

    我在使用 cx Freeze 5 0 时遇到了麻烦 我正在尝试 Windows 10 LTSB x64 Python 3 4 4 x86 PyQt5 PyWin32 x86 在我重新安装 Windows 10 之前 这个过程从未遇到过任何问
  • 无法在我的 Windows 10 上安装“Turicreate”

    我是 Python 新手 我正在尝试按照教程构建推荐引擎 教程要求我安装 turicreate 我在 Anaconda 上运行 Spyder 3 3 0 Python 版本 3 5 我尝试过的 我从各种 SO 问题以及 github 中寻求
  • 如何监控特定应用程序的网络带宽使用情况?

    我正在尝试学习如何监视特定应用程序的网络带宽使用情况 我正在看IPv4InterfaceStatistics 但这似乎是监视网卡的性能 我想监视特定应用程序以查看每秒消耗多少带宽 有谁知道如何做到这一点的例子 using System us
  • 如何为 R igraph 中的某些边分配边权重

    我想为最短路径中使用的某些边分配一个小的非负边权重 这是一个示例图 library igraph data lt read table text 1 2 1 4 1 5 2 3 2 4 3 4 5 7 5 8 3 6 header FALS
  • 如何在 pl/pgsql 中获取 foreach 中的当前键?

    我迭代一个数组 并对数组值及其键执行一些操作 从PostgreSQL 9 1开始有了foreach循环 所以数组值没有问题 但是有什么优雅的方法来获取key吗 我发现的唯一解决方案是为此维护额外的变量 CREATE OR REPLACE F
  • 验证用户名的正则表达式

    我正在尝试创建一个正则表达式来根据这些条件验证用户名 仅包含字母数字人物 下划线 and dot 下划线和点不能位于end or start用户名 例如 username username username username 下划线和点不能
  • Option::map 的结果寿命不够长

    我希望下面的两个函数是等效的 但是第一个无法编译 pub fn does not work
  • 为什么冒泡排序的复杂度是O(n^2)?

    据我了解 算法的复杂度是排序时执行的最大操作数 因此 冒泡排序的复杂度应该是算术级数 从1到n 1 的总和 而不是n 2 以下实现计算比较次数 public int sort int a int operationsCount 0 for
  • 如何验证 JSF 表单上模式的字符串输入字段

    我有一个要求 其中接受字符串的输入字段只能具有这些格式之一 使用 javascript 或 jsf 验证器实现此目的的最佳方法是什么 N A N N N 或 N A N N N N 上面的模式中可以有任何字母来代替 A 上面的模式中可以有除
  • C 语言的平均、最大和最小程序

    所以我用 C 进行编码 我需要编写代码 从用户那里获取 n 个数字 并找到它们的最小值 最大值 平均值以及它们的值的平方和 到目前为止 我已经有了平均值和平方和部分 但最小值和最大值让我很困惑 请记住 我还处于非常初级的水平 而且还没有达到