注册 登录
编程论坛 C语言论坛

请教一个小问题

守云 发布于 2021-08-23 11:55, 1523 次点击
#include<stdio.h>
int main()
{
    int a,b,c;
    printf("请输入一个数:");
    scanf("%d",&a);
    b=a%3;
    c=a%5;
    if(b=0)
    if(c=0)
    printf("%d能被3和5整除",a);
    else
    printf("%d能被3整除,不能被5整除",a);
    else
    if(c=0)
    printf("%d能被5整除,不能被3整除",a);
    else
    printf("%d不能被3和5整除",a);
    return 0;
}



为什么输出总是不能被3和5整除???
2 回复
#2
自由而无用2021-08-23 12:04
#include<stdio.h>

int main(int argc, char *argv[])
{
    int a, b, c;
   
    printf("请输入一个数:");
    scanf("%d",&a);
   
    b = a % 3;
    c = a % 5;
   
    if(0 == b)
        if(0 == c) printf("%d能被3和5整除",a);
        else printf("%d能被3整除,不能被5整除",a);
    else if(0 == c) printf("%d能被5整除,不能被3整除",a);
    else printf("%d不能被3和5整除",a);
        
    return 0;
}

[此贴子已经被作者于2021-8-23 12:10编辑过]

#3
renkejun19422021-08-23 12:17
因为 = 是赋值,== 才是逻辑等于

因此你的代码扩展之后等价于 if( ( b = 0 )!=  0  )

[此贴子已经被作者于2021-8-23 12:19编辑过]

#4
rjsp2021-08-23 13:15
歪个楼

程序代码:
#include <stdio.h>

int main( void )
{
    int a;
    printf( "请输入一个数: " );
    scanf( "%d", &a );

    const char* rs[] = { "能被3和5整除"
                       , "能被3整除,不能被5整除"
                       , "能被5整除,不能被3整除"
                       , "不能被3和5整除" };
    printf( "%d%s\n", a, rs[(a%3+2)/3*2+(a%5+4)/5] );
}
1