【问题描述】编写程序完成进制转换,要求使用函数,函数功能是:十进制转换为八进制,输入输出均在主函数中完成。
【输入形式】十进制数
【输出形式】八进制数
【样例输入】125
【样例输出】175
【样例说明】十进制125转化为八进制结果为175
#include
using namespace std;
int a[100],m,n,i(0);
void add(int k)
{
for(;i<100;i++)//这个i<100是不是该改改?
{a[i]=k%8;//先求被八整除的余数
m=k/8;//求在z以内能被八整除的最大数
k=m;
if(a[i]==0)
break;//怎么写,这个写的是有问题,但如何在得出结果为零是就终止,然后逆向输出
}
n=i;
}
int main()
{
int p;
cin>>p;
add(p);
for(int w=n-1;w>=0;w--)
cout<return 0;
}
在输入88
应该输出130时没有输出
是不是在函数循环中i<100有错,还是那个break有错?
我是根据计算机导论中学的十进制到八进制转换方法写的。
思路就是一个数不断被八除,除到最后小于八(除得结果为小数)则退出循环。
跳出循环,怎么更改,请多多指教!
逆序得用递归,多简单啊
#include <stdio.h>
int change(int n)
{
if(n<8)
return n;
return change(n/8)*10 + n%8;
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",change(n));
return 0;
}