首页 > 解决方案 > 八进制或十六进制数在C中转换为十进制

问题描述

扫描一个数字及其基值。如果一个数字以 0 开头,则为八进制;如果以 0x 开头,则为十六进制。打印相应的十进制值。

#include<stdio.h>
int main()
{
int a,b;
scanf("%x %d",&a,&b);
printf("%d",a);`
}

3个测试用例显示错误。请帮助我。

标签: c

解决方案


使用 scanfi 标志:

匹配一个可选的有符号整数;下一个指针必须是指向 int 的指针。如果整数以 0x 或 0X 开头,则以 16 为基数读取,如果以 0 开头,则以 8 为基数读取,否则以 10 为基数读取。仅使用与基础相对应的字符。

#include<stdio.h>

int main(void)
{
    int a,b;
    scanf("%i %i",&a,&b);
    printf("%d %d\n", a, b);`
    return 0;
}

推荐阅读