天门网站设计,防城港市建设工程质量监督站网站,2021近期时事新闻热点事件简短,怎么建个自己的网站题目#xff1a;将十进制数m1348转换成八进制数 难度#xff1a;★ 算法思路#xff1a;十进制转八进制的核心原理是“用辗转相除法不断对8取余#xff0c;最后将余数反向输出”#xff0c;即先求出来的余数后输出#xff0c;符合“先进后出”的栈的特性#xff0c;故设… 题目将十进制数m1348转换成八进制数 难度★ 算法思路十进制转八进制的核心原理是“用辗转相除法不断对8取余最后将余数反向输出”即先求出来的余数后输出符合“先进后出”的栈的特性故设置一个栈来存放余数。 十进制转八进制过程示意图 代码
#includestdio.h
//栈的结构体
typedef struct stack{int base[100];int top;//指向当前栈顶元素
}stack;
stack s;
//入栈
int push(int e){//判满 if(s.top100){return 0;}s.base[s.top]e;return 1;
}
//出栈
int pop(int *e){//判空 if(s.top-1){return 0;}*es.base[s.top--];return 1;
}
int main(){int m1348,n8;int e;s.top-1;//辗转相除法后余数入栈 while(m){push(m%n);m/n;}printf(十进制数1348转换成八进制数为);while(s.top!-1){pop(e);//注意这里要获取栈顶元素的值且pop函数里面参数类型是整型指针故这里要将变量e的地址传递过去 printf(%d,e); }return 0;
}
机算结果 手算结果