【问题标题】:Average value of numbers from N to 1000 (included), without even numbers which are divisible by 6 and 17从 N 到 1000(包括)的数字的平均值,不包括能被 6 和 17 整除的偶数
【发布时间】:2019-11-24 11:59:55
【问题描述】:

首先我要输入N,N成为第一个要检查的数字。

输入:79

输出应该是:537.70。

int sum=0;
      while(1)
        {
        scanf("%d", &n);
        if(n>=10 && n<80)
        {
            break;
        }
        printf("New output:\n");
    }

for(i=n;i<=1000;i++)
{
    if(i%2==0 && i%6!=0 && i%17!=0)
    {
        sum+=i;
    }

我没有用 (float)sum/N 取平均值,因为我在 sum 上做错了。

更多输入输出:

输入:10 输出:505.21

输入:44 输出:521.18

【问题讨论】:

  • 没有能被 6 和 17 整除的偶数
  • 您要排除能被 6 或 17 整除的偶数,还是能被 102 整除的偶数?
  • 答案如下

标签: c loops average


【解决方案1】:

除了保持“运行总和”之外,您还需要记录使用了多少个数字,以便正确计算平均值:

#include <stdio.h>

int main(void)
{
    int n;
    printf("Enter start number: ");
    scanf("%d", &n);
    int sum = 0, count = 0;
    for (int i = n; i <= 1000; ++i) {
        if (!(i % 2) && (i % 6) && (i % 17)) {
            sum += i;
            ++count;
        }
    }
    printf("Average is: %.2f\n", (double)sum / (double)count);
    return 0;
}

输入:79
输出应该是:537.70。

你确定这个值吗?我得到 538.70 - 但我得到了你引用的其他测试用例的给定值。

【讨论】:

  • 是的 538.70 是正确的,我没有添加计数器是错误的,因为我将它与 N 而不是计数器分开。感谢您的回答
猜你喜欢
  • 1970-01-01
  • 2021-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-11
  • 1970-01-01
  • 2020-11-17
  • 2017-06-09
相关资源
最近更新 更多