【问题标题】:C program to find average of numbers [closed]C程序找到数字的平均值[关闭]
【发布时间】:2021-07-06 02:22:18
【问题描述】:

我真的需要关于作业的指导。

说明

【问题讨论】:

  • 提示:1) 您可能需要一个 int[] 数组来保存用户输入的数字,2) 您需要一个“while()”循环将用户的数字读入数组。该循环可能会调用“scanf()”。 3) 用户输入“0”后,您将有第二个 - “for()” 循环来计算平均值。 4) 您需要计算 A) 数字和 B) 如何输入 MANY 数字。 5) 最后,您可能想要“printf()”平均值。
  • 我认为您根本不需要数组。将 sum 和 count 变量初始化为 0。读取一个数字,如果它不是 0,则将其添加到 sum 并增加计数。如果为 0,则将总和除以计数。
  • @Steff,也许您应该检查0 处理用户输入的0 之前?而sum/counter 正在做整数除法。
  • 我再次对其进行了编辑并添加了 counter--,它总体上可以正常工作,只是它不输出十进制数字。我该如何解决这个问题?
  • 好的,我完成了代码。有人可以确保我正确执行了 for 循环吗?我不确定我是否应该写 i

标签: c average


【解决方案1】:

在这种情况下,我建议你应该使用 while 或执行 while 循环,如果不知道目的地,则不能使用 for 循环

#include <stdio.h>

int main()
{
  int count = 0;
  float sum = 0;
  float numbers;
  printf("Enter numbers to find the average (0 to stop)\n");
  do {
    scanf("%f", &numbers);
    count++;
    sum += numbers;
  } while(numbers != 0);

  printf("Result: %f", sum/(count-1));
  return 0;
}

【讨论】:

  • 是的,谢谢,我是新手,已经习惯使用函数 getch()。谢谢提醒
【解决方案2】:

以下建议干净地编译并执行所需的功能

#include <stdio.h>

int main( void ) 
{
    
    int counter;
    int sum = 0; 

    int numbers;
    
    printf("Enter numbers to find the average (0 to stop)\n");
    
    for ( counter = 0; ; counter++) 
    {
        scanf("%d", &numbers);
        if( ! numbers )
            break;
        
        sum += numbers;
    }
    
    float fcounter = (float)counter;
    float fsum     = (float)sum;
    float average  = fsum / fcounter;
    printf("\nAverage = %.3f", average);

    return 0;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    相关资源
    最近更新 更多