教你夺冠


私信TA

用户名:835685327

访问量:148346

签 名:

相互交流 相互学习

等  级
排  名 13
经  验 21570
参赛次数 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 <iostream>
using namespace std;

int Change(int m) {
	if (m / 8 == 0)
		return m;
	else {
		return m % 8 + 10 * Change(m / 8);
	}
}


int main()
{
	int m;
	cin >> m;
	cout<<Change(m);
}
2023-07-21 19:06:48
#include<iostream>
using namespace std;
// 编程,输入一个10进制正整数,然后输出它所对应的八进制数。
int main()
{
    long long Dec,Oct=0,Inter,Power=1;
    cin >> Dec;
    while(1){
        Inter=Dec%8;
        if(Inter==0 && Dec<10){
            Oct += Dec/8*Power*10;
            break;
        }
        Dec=Dec/8;
        Oct += Inter*Power;
        Power*=10;
    }
    cout << Oct;
    return 0;
}//除8取余法
2023-03-12 16:21:45
第二种方法超过65好像就不行了
2022-07-17 22:56:00
第二种方法不对哦
2022-06-21 14:49:28
#include <stdio.h>
int main()
{
	int a[20],n,i=0,j;
	printf("请输入一个十进制正整数:");
	scanf("%d",&n);
	j=n;
	do
	{
		a[i]=j-j/8*8;
		printf("a[%d]=%d\n",i,a[i]);
		j=j/8;
		i++;	
	}while(j/8!=0);
	if(j/8==0)
	{
		a[i]=j%8;
		printf("a[%d]=%d\n",i,a[i]);
	}
	printf("十进制数%d转化为八进制数为0",n);
	for(j=i;j>=0;j--)
	{
		printf("%d",a[j]);
	}
	printf("\n");
	
	return 0;
}
2022-04-01 19:45:34
#include<stdio.h>
int mi(int x);
int mi(int x)
{int n,sum;
sum=1;
for(n=1;n<=x;n++)
{
	sum*=8;
}
	return(sum);
	
}
	
	
	
	

	
int main()
{
	int m,b[100]={0},i,j,n,k;
	
	m=0;
	i=1;
int mi(int x);
	scanf("%d",&m);
	n=m;
	for(i=1;;i++)  
	{ n/=8;
	    if(n==0) break;
	}
	k=i;
		for(j=0;i-1>=0;i--)
		
		{b[j]=m/mi(i-1);
		m%=mi(i-1);
		j++;
			
		}
		
		for(j=0;j<k;j++)
		printf("%d",b[j]);
		return 0;
}
直接暴力,新手只会暴力,太弱了,那种用递归和直接转的方法我真的好羡慕,想不到。
2022-03-20 00:18:36
第二种方法不对呀
2022-01-12 20:18:17
#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