借此复习一下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分

110 人评分

  评论区

#include <stdio.h>


int main()
{
	int i=-1,j, n,remainder[100];
	scanf("%d",&n);
	while(n>8)
	{
	    remainder[i+1]=n%8;
	    n=n/8;
	    i++;
	}
	printf("%d",n);
	if(i!=-1)
	{
	    	for(j=i;j>=0;j--)
    	{
    	    printf("%d",remainder[j]);
    	}
	}
	return 0;
}

请问为什么这个不对?
2021-10-06 13:03:00
求问这个为什么不对
#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