使用printf输出8进制,16进制方法如下。

无前缀方式:

printf("%o",num)  //无前缀o的8进制数

printf("%x",num)  //无前缀0x的小写16进制数

printf("%X",num)  //无前缀0X的大写16进制数


有前缀方式:

printf("%#o",num) //有前缀o的8进制数

printf("%#x",num) //有前缀0x的小写16进制数

printf("%#X",num) //有前缀0X的大写16进制数

#include <stdio.h>
 
int main()
{
    int n;
	scanf("%d", &n);
	
	//printf("%o %d %x\n", n, n, n);
	printf("%#o %#d %#x\n", n, n, n);
	
	return 0;
}


点赞(109)
 

0.0分

147 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 108 条评论

麦子 3年前 回复TA
我用的vs编译器,vs在编译的时候如果用scanf会直接报错,导致内存泄漏,所以我用的scanf_s
萨满蓝琦灬 3年前 回复TA
@MV %d整型输出,%ld长整型输出,  %o以八进制数形式输出整数,  %x以十六进制数形式输出整数,  %u以十进制数输出unsigned型数据(无符号数)。  %c用来输出一个字符,  %s用来输出一个字符串,  %f用来输出实数,以小数形式输出,(备注:浮点数是不能定义如的精度的,所以“%6.2f”这种写法是“错误的”!!!)  %e以指数形式输出实数,  %g根据大小自动选f格式或e格式,且不输出无意义的零。  scanf(控制字符,地址列表)  格式字符的含义同printf函数,地址列表是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。如scanf("%d%c%s",&a,&b,str);
不能颓废不前 3年前 回复TA
@MV %o八进制%d十进制%x十六进制
t秃头大怪兽 3年前 回复TA
@魑魅魍魉 运行出来了啊
呼哈呼哈 3年前 回复TA
@BabyFei 10^9的意思是10的九次方,就等于10亿  只要你赋值的这个数不超过10亿就行
BabyFei 3年前 回复TA
这是最佳解题吗?你题目中说的输入值不大于10^9怎么理解?
IT菜鸡 3年前 回复TA
@常鳞凡介 蒙圈了
LLYQ 3年前 回复TA
@魑魅魍魉 错在不能给n赋值
青柠时光 3年前 回复TA
@魑魅魍魉 那个输入不应该是从控制台输入吗,为什么你给n赋值,然后又让n从控制台让用户来输入阿,这个是不是重复了,虽然对结果没有影响
C初学者 3年前 回复TA
前两章都没有看到scanf函数呀,怎么就跑出来了呀,还有%#o   %d    %#x   又是从哪里看到的呀,我纯新手,不懂啊