c - 用数组求和,最小值,最大值

标签 c

编写一个程序,输入多个值,然后在循环中一个一个地输入这些值(double类型),最后输出它们的总和、最大值和最小值。

我写了这个作业的代码,但我得到了错误

#include <stdio.h>

int main(void)
{
        float a;
        float i;
        short c;
        float sum;
        float nu[];

        i=nu[];

          printf("Number of values :");
          scanf("%f",&i);

        for (c=1;i>=c;c++)
        {
          printf("values=");
          scanf("%f",&nu[c]);

                sum = sum + nu[c];
        //      printf("Sum = %f\n",sum);
        }

        printf("sum = %f \n",sum);
//      printf("Number of values :");
//      scanf("%f",&i);
}

错误是 number.c:在函数“main”中: number.c:9: 错误:‘nu’中缺少数组大小 number.c:11: 错误:']' 标记前的预期表达式

最佳答案

在 C 中,您需要指定数组的大小,例如 float nu[100];但是如果您认为需要存储所有这些值,那您就找错了树。最小值、最大值和总和都可以即时计算,无需返回并检索任何以前的数字。

您需要做的就是一次输入一个,对于每个:

  • 如果它是第一个或更高的当前高点,则将当前高点设置为它。
  • 如果它是第一个或更低的当前低点,则将当前低点设置为它。
  • 将其加到总和中。

顺便说一句,应该将总和初始化为零。

在伪代码方面,从这个开始:

set sum, high and low all to zero

scan "number of values" into count

for curr = one to count, inclusive:
    scan "current number" into num

    set sum to sum + num

    if curr is one, or num is less than low:
        set low to num

    if curr is one, or num is greater than high:
        set high to num

output "Minimum = " low
output "Maximum = " high
output "Sum     = " sum

理解它的最好方法是拿一张(非常非技术性的)纸并写下这样的表格:

+-----+------+-----+-----+-------+------+
| sum | high | low | num | count | curr |
+-----+------+-----+-----+-------+------+
|     |      |     |     |       |      |
|     |      |     |     |       |      |
|     |      |     |     |       |      |
|     |      |     |     |       |      |
|     |      |     |     |       |      |
+-----+------+-----+-----+-------+------+

然后在您的头脑中逐步运行该程序,在运行过程中输入或更改该表中的值。您甚至可以检测到您何时使用未初始化的值,例如您是否遇到了 set sum to sum + curr。如果sum列为空。

您会惊讶于您开始像计算机一样思考的速度如此之快,只是希望它不会在此过程中将所有这些社交技能从您的脑海中挤出:-)

关于c - 用数组求和,最小值,最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3547633/

相关文章:

c - 使用外部 DLL 时 PL/I 中的错误处理?

c - 输入 fget 时检测到堆栈崩溃

c - 从字符串中提取整数

c++ - 套接字编程 : 'accept: Bad file descriptor'

c - Errno 35 (EAGAIN) 在 recv 调用时返回

c - 减少C中二维连接的时间

创建一个函数并在主程序中调用它

c - 内核编码的下一步

C 指向数组的 union 指针

c - C语言反转输入的数字