使用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 条评论

十一先森 6年前 回复TA
scanf的作用是什么啊,没它也能编译出来啊,,,
U80I 6年前 回复TA
加上#输出的数字会带进制符号,用来辨别数字代表的进制,大概是这样吧
sakeboy 6年前 回复TA
@guijiang 因为十进制不要前缀
承苏凯 6年前 回复TA
@姚铭轩 表示前缀
承苏凯 6年前 回复TA
错误原因:
    没加上 //printf("%o %d %x\n", n, n, n);这条语句
姚铭轩 6年前 回复TA
%后面为什么要加#
Christ 6年前 回复TA
#include<stdio.h>
int main()
{
	char h1;
	
	scanf("%c",&h1);
	printf("%d\n",h1);
} 

[Error] C:\PROGRA~2\C-FREE~1\mingw32\Bin\ld.exe: cannot open output file C:\Program Files (x86)\C-Free Standard\mingw32\Bin\input.exe: Permission denied

谁帮我看看?
guijiang 6年前 回复TA
这是一个神奇的题,提交的答案都是错的。。。