【问题标题】:Calculating the average of user inputs in c计算c中用户输入的平均值
【发布时间】:2017-09-30 14:04:57
【问题描述】:

免责声明:我是编程新手 我正在解决这个问题

到目前为止,我写了这个,它接受用户输入并根据它们计算平均值

#include <stdio.h>

int main()
{
    int n, i;
    float num[100], sum = 0.0, average;

    for(i = 0; i < n; ++i)
    {
        printf("%d. Enter number: ", i+1);
        scanf("%f", &num[i]);
        sum += num[i];
    }
 average = sum / n;
printf("Average = %.2f", average);
    return 0;
}

我希望用户输入 -1 表示他们已完成输入数据;我不知道该怎么做。所以如果可能的话,有人可以解释或给我一个关于如何做的想法

谢谢!

【问题讨论】:

  • 我尝试使用 if 语句 idk 结束数据输入,如果那完全错误,但我想表明我至少尝试过
  • 请将您的问题发布为文本。还要添加与问题内联的代码。
  • 由于在条件中用户必须输入整数 - 无需将它们读取为 %f,请使用 int num%d

标签: c average


【解决方案1】:
#include <stdio.h>

int main()
{
    int i = 0;
    float num[100], sum = 0.0, average;
    float x = 0.0;

    while(1) {

        printf("%d. Enter number: ", i+1); 
        scanf("%f", &x);

        if(x == -1)
            break;

        num[i] = x;
        sum += num[i];
        i++;

    }

    average = sum / i;

    printf("\n Average = %.2f", average);

    return 0;
}

如果您不希望以后使用数据,则不需要数组 num[]。 希望这会有所帮助。!!

【讨论】:

    【解决方案2】:

    您只需要平均值。无需为此存储所有输入的数字。

    您只需要将-1 之前的数字输入存储在一个变量中,例如count,该变量在循环的每次迭代中递增,而sum 之类的变量则保存到目前为止输入的所有数字的总和。

    在您的程序中,您在使用之前还没有初始化nn 只有垃圾,其值不确定。

    您甚至不需要 average 变量。您可以在打印平均值时打印出sum/count

    int count=0;
    float num, sum = 0;
    while(scanf("%f", &num)==1 && num!=-1)
    {
        count++;
        sum += num;
    }
    

    停止阅读-1

    【讨论】:

      【解决方案3】:

      无需声明一个数组来存储输入的数字。您只需检查下一个输入的数字是否等于 -1,如果不是,则将其添加到总和中。

      注意,根据分配,用户必须输入整数。平均值可以计算为整数或浮点数。

      程序可以如下所示

      #include <stdio.h>
      
      int main( void )
      {
          unsigned int n = 0;
          unsigned long long int sum = 0;
      
          printf("Enter a sequence of positive numbers (-1 - exit): ");
      
          for (unsigned int num; scanf("%u", &num) == 1 && num != -1; )
          {
              ++n;
              sum += num;
          }
      
          if (n)
          {
              printf("\nAverage = %llu\n", sum / n);
          }
          else
          {
              puts("You did not eneter a number. Try next time.");
          }
      
          return 0;
      }
      

      程序输出可能看起来像

      Enter a sequence of positive numbers (-1 - exit): 1 2 3 4 5 6 7 8 9 10 -1
      
      Average = 5
      

      如果您需要将平均值计算为浮点数,则只需将变量 sum 声明为类型为 double 并在 printf 语句中使用相应的格式说明符来输出平均值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-04-30
        • 1970-01-01
        • 1970-01-01
        • 2021-01-31
        • 1970-01-01
        • 2014-04-27
        • 1970-01-01
        相关资源
        最近更新 更多