题目描述
将十进制数转换为八进制,并输出。
图:将十进制数转换为八进制并输出
输入格式
输入包含若干十进制正整数。
输出格式
无
样例输入
复制
1 2 3 7 8 9 19 10020345
样例输出
复制
1 2 3 7 10 11 23 46162771
#include<stdio.h>
#include<stdlib.h>
typedef struct LN{
int rm;
struct LN *next;
struct LN *prior;
}*ln,LN;//创建没有头结点的双向链表,符合后进先出的栈特性
ln creat(int);
int main(){
int n;
int devidend;//存储被除数
int remainder;//存储余数
ln headpointer1=NULL;//两个头指针
ln headpointer2=NULL;
while(~scanf("%d",&n)){
devidend=n;
while(devidend>=8){
if(headpointer1==NULL){//创建没有头结点的链表时需要先判断一下
headpointer1=creat(devidend%8);
}
else{
headpointer2=creat(devidend%8);
headpointer1->next=headpointer2;
headpointer2->prior=headpointer1;
headpointer1=headpointer2;
}
devidend/=8;
}
if(headpointer1!=NULL){
headpointer2=creat(devidend);
headpointer1->next=headpointer2;
headpointer2->prior=headpointer1;
headpointer1=headpointer2;
}
else{
headpointer1=creat(devidend);
}
while(headpointer1){//lifo
printf("%d",headpointer1->rm);
headpointer1=headpointer1->prior;
}
printf("\n");
}
}
ln creat(int rm){
ln p=(ln)malloc(sizeof(LN));
p->rm=rm;
p->prior=NULL;
p->next=NULL;
return p;
}