yihayoooooo 发表于 2020-7-10 11:50:10

运算符和表达式

#include <stdio.h>
double fun(intn)
{
        int i;
        double sum = 0.0; /*将sum定义为双精度型变量,并给其赋初值为0.0*/
        if (n>0 && n<=100)
        {for(i=1; i<=n; i++)
                if(i&5==0 || i%9==0)
        sum += 1.0/i; /*累加自然数的倒数之和,放入变量sum中*/
        }
return sum; /*返回结果*/

}


用fun函数计算输入n值以内能被5或9整除的所有自然数的倒数之和
请问代码哪里出错?能运行但结果不对
谢谢啦!

qiuyouzhi 发表于 2020-7-10 11:57:00

%写成&了
#include <stdio.h>
double fun(int n)
{
    int i;
    double sum = 0.0; /*将sum定义为双精度型变量,并给其赋初值为0.0*/
    if (n>0 && n<=100)
    {
                for(i=1; i<=n; i++)
                {
                if(i%5==0 || i%9==0)
                      sum += 1.0/i; /*累加自然数的倒数之和,放入变量sum中*/
      }
    }
        return sum; /*返回结果*/

}

CodingCat_k 发表于 2020-7-10 11:59:30

if(i&5==0 || i%9==0)
感觉应该是打错了,i&5意味着你要找的是一个包含第1位或第3位为一的数

405794672 发表于 2020-7-12 20:37:32

他们说得对,你打错了符号。被5整除应是%取余等于0,不是&位与。
页: [1]
查看完整版本: 运算符和表达式