C语言编程:从键盘上输入一个十进制数,将其转换成八进制数,然后输出。

要求:用字符数组存放八进制数···

急 谢谢!!!

非递归算法:
#include <iostream>
using namespace std;
#include <math.h>
#define MAXSIZE 20
typedef struct Stack
{
char node[MAXSIZE];
int top;
}Stack;

int main()
{

Stack s;
s.top=-1;
int n;
cout<<"请输入十进制数:"<<endl;
cin>>n;
int m;
cout<<"请输入要转化的进制数:"<<endl;
cin>>m;
int q=n;
while(n!=0)
{
q=n%m;
n=n/m;
s.top++;
if(q<10)
s.node[s.top]=q+48;
else
s.node[s.top]=(q-9)+64;
}
while(s.top>=0)
{
cout<<s.node[s.top--];
}

return 0;
}

递归算法:(未采用数组存储)
#include <iostream>
using namespace std;

#define N 8
void print(int M);
int main()
{
print(100);

return 0;
}
void print(int M)
{
int n=M%N;
M=M/N;
if(M!=0)
print(M);
cout<<n;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-10
#include<stdio.h>
#define LENGTH 100
#define NUMBER 8
int scan()
{
int data;
printf("Input your data :");
scanf("%d",&data);
return data;
}
void display(char array[],int index)
{

for(int j=index-1; j>=0; j--)
{
printf("%d",array[j]);
}
printf("\n");
}
void conversion(int data)
{
char array[LENGTH];
int i=0;
printf("%d 转换成八进制后为:", data);
while(data){

array[i++]=(char)(data%8);
data /= NUMBER;
}
display(array, i);
}
int main()
{
conversion(scan());
return 1;
}本回答被提问者和网友采纳
第2个回答  2008-11-24
不会吧!
printf("%o",a[i]);
相似回答