教你夺冠


私信TA

用户名:835685327

访问量:148360

签 名:

相互交流 相互学习

等  级
排  名 13
经  验 21574
参赛次数 0
文章发表 84
年  龄 0
在职情况 学生
学  校 辣鸡施工大学
专  业

  自我简介:

努力刷题 熟能生巧!

借此复习一下printf格式码:

%d —— 以十进制形式打印一个整型值

%o ——   八进制

%x ——   十六进制

参考代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    int num;
    scanf("%d", &num);

    printf("%o", num);

    return 0;
}

还有另一种求法,用来学习~

#include <stdio.h>

int main()
{
    int num;
    scanf("%d", &num);

    int rest = num % 8; //rest用来保留最后一位
    while (num / 8 != 0)
    {
        num = num / 8;
        putchar(num + '0'); //以ascii码的形式打印
    }
    putchar(rest + '0');

	return 0;
}


 

0.0分

107 人评分

  评论区

求问这个为什么不对
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int j,m,k;
    int a;
    scanf("%d",&m);
    k=m/8;
    j=m%8;
    a=10*k+j;
    printf("%d",a);

    return 0;
}
2021-03-12 20:32:13
第一种方法#include <stdlib.h>
#include <string.h>不带上为啥不对呀
2020-03-15 14:38:17
第二种方法貌似有点局限。。。。
2020-02-24 11:44:47
第三种
#include<stdio.h>

void Octal(int x){
	if(x>0){
		Octal(x/8);
		printf("%d",x%8);
	}
}

int main(void)
{
	int x=0;
	scanf("%d",&x);
	Octal(x);
	return 0;
}
2020-02-13 17:20:41
#include <stdio.h>
#include <math.h>

int main(void)
{
	int i = 0, num = 0, div = 0, rem = 0, onum = 0;
	scanf("%d", &num);
	while (1) {
		div = num/8;
		rem = num%8;
		onum += pow(10,i++)*rem;
		if (0 == div)break;
		num = div;
	}
	printf("%d", onum);
	return 0;
}
这样可以代替第二种方法
2020-02-06 13:52:11
以二进制打印是%什么
2019-08-11 19:26:49
请问第一种方法#include <stdlib.h> #include <string.h>这两个头文件可以不带上吗
2019-04-18 22:34:50
第二个  只能用于64以下的数吧。。。。
2019-03-26 15:20:52