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

要求:用字符数组存放八进制数···急 谢谢!!!
2024-11-15 05:39:48
推荐回答(3个)
回答1:

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

int main()
{

Stack s;
s.top=-1;
int n;
cout<<"请输入十进制数:"< cin>>n;
int m;
cout<<"请输入要转化的进制数:"< 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< }

return 0;
}

递归算法:(未采用数组存储)
#include
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<}

回答2:

#include
#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;
}

回答3:

不会吧!
printf("%o",a[i]);