求1到100内所有7的倍数或者尾数是7的总共和,为什么程序显示if (b%7==0 || b%10=7)错误呀:(

求1到100内所有7的倍数或者尾数是7的总共和,为什么程序显示if (b%7==0 || b%10=7)错误呀:(

int main()
{
    system("color 0a");
    int a,b;
    a=0;
    b=1;
    while (b<=100)
    {
        if (b%7==0 || b%10=7)
        {
            a=a+b;
        }
        b=b+1;
    }
    printf("%d",a);
}

该回答引用ChatGPT

您的程序显示错误,因为在if语句中,您使用了单个等号(=)而不是双等号(==)来比较b%10是否等于7。单个等号表示赋值,而双等号表示相等比较。

正确的代码如下:


int main()
{
    system("color 0a");
    int a,b;
    a=0;
    b=1;
    while (b<=100)
    {
        if (b%7==0 || b%10==7)
        {
            a=a+b;
        }
        b=b+1;
    }
    printf("%d",a);
}

第九行的代码 b%10=7这里错了呀,你这是赋值,并不是比较运算
应该改成b%10==7

b%10=7
这里=是赋值,所以当你将7这个值赋值给左边一大堆表达式,左边不是变量不可赋值,当然报错

若有帮助,望给个采纳哈,谢谢!

img