问题遇到的现象和发生背景 题目如下:
【问题描述】编写程序完成进制转换,要求使用函数,函数功能是:十进制转换为八进制,输入输出均在主函数中完成。
【输入形式】十进制数
【输出形式】八进制数
【样例输入】125
【样例输出】175
【样例说明】十进制125转化为八进制结果为175
用代码块功能插入代码,请勿粘贴截图
#include <iostream>
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<<a[w];
return 0;
}
运行结果及报错内容
在输入88
应该输出130时没有输出
我的解答思路和尝试过的方法
是不是在函数循环中i<100有错,还是那个break有错?
我是根据计算机导论中学的十进制到八进制转换方法写的。
思路就是一个数不断被八除,除到最后小于八(除得结果为小数)则退出循环。
我想要达到的结果
跳出循环,怎么更改,请多多指教!