写了这个函数,想知道为什么没有输出


#include
int mysum(int abc)
{
    int a,b,c;
    int add=0;
    a=(abc/100);
    b=(abc/10%10);
    c=(abc%10);
    add=(a+b+c);
    return add;
}
int mymul(int abc)
{
    int a,b,c;
    int mul=0;
    a=(abc/100);
    b=(abc/10%10);
    c=(abc%10);
    mul=(a*b*c);
    return mul;
}
int main()
{
    int sum1=(1+2+3+4+5+6+7+8+9);
    int mul1=(1*2*3*4*5*6*7*8*9);
    int abc,def,ghi;
    int sum2,mul2;
for(abc=123;abc<=329;abc++)
{
def=(2*abc);
ghi=(3*abc);
sum1=(mysum(abc)+mysum(def)+mysum(ghi));
mul1=(mymul(abc)+mymul(def)+mymul(ghi));
if(sum2==sum1&&mul2==mul1)
{
printf("%d %d %d",abc,def,ghi);
}

}
}

img


写了这个函数,想知道为什么没有输出

你加个else啊,如果35行条件不满足,输出一个“无”。可能就是没有符合条件的数啊

第35行,if (sum2 == sum1 && mul2 == mul1) ,sum2 和 mul2 的值是多少? 修改如下,供参考:

#include<stdio.h>
int mysum(int abc)
{
    int a, b, c;
    int add = 0;
    a = (abc / 100);
    b = (abc / 10 % 10);
    c = (abc % 10);
    add = (a + b + c);
    return add;
}
int mymul(int abc)
{
    int a, b, c;
    int mul = 0;
    a = (abc / 100);
    b = (abc / 10 % 10);
    c = (abc % 10);
    mul = (a * b * c);
    return mul;
}
int main()
{
    int sum1 = (1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9);
    int mul1 = (1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9);
    int abc, def, ghi;
    int sum2, mul2;
    for (abc = 123; abc <= 329; abc++)
    {
        def = (2 * abc);
        ghi = (3 * abc);
        sum2 = (mysum(abc) + mysum(def) + mysum(ghi));//修改
        mul2 = (mymul(abc) * mymul(def) * mymul(ghi));//修改
        //mul2 = (mymul(abc) + mymul(def) + mymul(ghi));
        if (sum2 == sum1 && mul2 == mul1)
        {
            printf("%d %d %d\n", abc, def, ghi);//修改
        }

    }
}