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

下面这段代码,对a采用八进制数值进行赋值,因此打印输出的结果是945

黑暗骑士5D 发布于 2020-02-27 18:00, 3173 次点击
#include <stdio.h>
int main(){
    int a,b;
    a = 029;
    b = 920;
    printf("%d", a+b);
    return 0;
}

这是对还是错
6 回复
#2
rjsp2020-02-27 18:12
029、25、0x19 是三个同样的数
#3
forever742020-02-27 23:03
八进制哪儿来的9啊孩纸
编译会报错的
#4
rjsp2020-02-28 09:17
晕,受骗上当了!
当看到“打印输出的结果是945”,那我自然认为你的代码编译成功了。但原来这句话只是你引用别人的话而已,可惜你没说清。
希望此论坛有拉黑功能,互相眼不见为净。
#5
自学的数学2020-02-28 10:41
4    9    C:\Users\Administrator\Desktop\测试.cpp    [Error] invalid digit "9" in octal constant
楼主问的就是:这是对的还是错的?。当然是错的了。错就错在八进制数里出现了9.
#6
yu17761517872020-03-01 14:34
/*楼主说结果是945,并且改正了编译错误
正常输出941所以该题目错误*/
#include <stdio.h>

int main(){
    int a,b;
    a = 025;//8进制
    b = 920;//10进制
    printf("%d", a+b);//输出10进制941
    return 0;
}

#7
Divine2020-03-02 08:57
这不对吧,你的程序所实现的效果和你想要的用八进制对a赋值不一样,八进制不会出现9吧
1