哥们儿们能不能看一下这是啥问题,我是大一新生

img

img


为什么输出的是两位数啊,搞不懂为什么,可以详细解释一下吗 我试着加了一下花括号就过了啊

if else不加花括号默认只能匹配一个语句命令,也就是之后一个分号的内容;加了花括号,才能执行花括号内的所有语句命令。它不是按照缩进匹配的语言

不加括号后边这个输出是不属于else作用范围的,都会输出,只有第一句属于else
相当于

else{ number = -number; }     
printf("%d\n", number);

img


#include <stdio.h>

int
main(int argc, char *argv[]) {

    int number;
    scanf("%d", &number);

    if (number >= 0)
        printf("%d\n", number);
    else {
        number = -number;
        printf("%d\n", number);
    }

    return 0;
}

你的else部分是需要加花括号的,否则第二个printf也是会打印输出的

你都知道加了花括号就过了,那就是因为没有加花括号啊
如果不知道花括号是什么就去看书,不要在这瞎试