编程实现:从键盘输入一个十进制正整数,将其转换成八进制后输出

青梅煮酒 2009-04-08 05:50:39
本人初学C++是个很菜的菜鸟,现在老师布置了两个题我是一个都作不出来惭愧!希望哪位大侠帮忙,小弟先谢谢了!有点急。要求如下:
操作系统:XP
软件平台:Microsoft Visual C++ 6.0
...全文
6940 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
chin_chen 2009-04-10
  • 打赏
  • 举报
回复
#include <iostream>
#include <stack>
using namespace std;


int main()
{
int num;
const int JINZHI=8;
cin>>num;
stack<int>st;

while(num)
{
st.push(num%JINZHI);
num=num/JINZHI;
}
while(!st.empty())
{
cout<<st.top();
st.pop();
}
system("pause");
}
hoomey 2009-04-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 mzlogin 的回复:]
七楼正解。

C/C++ code
#include<iostream>
using namespace std;

int main()
{
int i;
cin>>i;
cout<<oct<<i<<endl;
return 0;
}



这样就可以了。
其中这个oct(八进制)可以换为hex(十六进制)和dec(十进制)。
[/Quote]
xiaoshi935 2009-04-08
  • 打赏
  • 举报
回复
好像没有别的方法了,楼上的各位几乎说完了
mzlogin 2009-04-08
  • 打赏
  • 举报
回复
七楼正解。

#include<iostream>
using namespace std;

int main()
{
int i;
cin>>i;
cout<<oct<<i<<endl;
return 0;
}

这样就可以了。
其中这个oct(八进制)可以换为hex(十六进制)和dec(十进制)。
adventurelw 2009-04-08
  • 打赏
  • 举报
回复
最简单的肯定就是格式化了
cout << oct << value << endl;
canjianx 2009-04-08
  • 打赏
  • 举报
回复
直接cout格式化输出就可以,直接看看ostream的用法就可以,随便一本c++基础书都可以找到。
huangzonghai 2009-04-08
  • 打赏
  • 举报
回复

#include<stdio.h>
#include <math.h>

int dtoe(int a)
{
if (a < 8)
{
return a;
}
else
{
return (dtoe(a / 8) * 10 + a % 8);
}
return 0;
}

int main(void)
{
int iTemp;
scanf("%d",&iTemp);
iTemp = dtoe(iTemp);
printf("OCT:%d\n", iTemp);

return 0;
}
yangkunhenry 2009-04-08
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;
class Translate
{
private:
int value;
int i;
int count;
void myswap(int& x,int& y);
public:
Translate(int v,int iv=0,int num=0):value(v),i(iv),count(num)
{}
void Dec_to_Oct(int* arr);
void Print_Result(int* arr);
};
void Translate::myswap(int &x, int &y)
{
x^=y;
y^=x;
x^=y;
}
void Translate::Dec_to_Oct(int* arr)
{
while(value)
{
*(arr+i)=value%8;
value/=8;
i++;
}
count=i;
i--;
for(int j=0;j<=i;j++,i--)
myswap(arr[j],arr[i]);
}
void Translate::Print_Result(int* arr)
{
for(int j=0;j<count;j++)
cout<<*(arr+j);
cout<<endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
int b;
int arr[10];
memset(arr,0,10);
cout<<"Enter value(Ctrl+Z to end):"<<endl;
while(cin>>b)
{
Translate t(b);
t.Dec_to_Oct(arr);
t.Print_Result(arr);
}
return 0;
}
  • 打赏
  • 举报
回复
itoa,sprintf都可以,你google一下基本用法吧。
donle1000 2009-04-08
  • 打赏
  • 举报
回复
LS的虽简单..貌似作业这样做的话会....


#include <iostream>
using namespace std;
int main()
{
long a;
cin >> a;
cout << ((a / 8)* 10) + a % 8 << endl;
return 0;
}


mengde007 2009-04-08
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;
int main()
{
int i;
cin>>i;
char a[10];
itoa(i,a,8);
cout<<a<<endl;
return 0;
}

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧