需求:编写程序使十进制转换成为二进制
分析:十进制转换二进制。如图,只需要不断除以2,然后将余数逆置即可,我们可以将余数依次输入到栈中,利用栈先进后出的特性,再将栈中元素输出即可得到二进制序列
![30a02f5b4888ce2819f0204c957ad5be.png](https://i-blog.csdnimg.cn/blog_migrate/278831183aac0d3513eba586fa7c024d.jpeg)
int transform(int n){
int stack[MAXSIZE],top = -1;
int temp = n;
int a;//a用来记录每次相除得到的结果
while(temp != 0){
a = temp % 2;
temp = temp / 2;
stack[++top] = a;
}
// //出栈输出二进制
// while(top != -1){
// printf("%d",stack[top--]);
// }
//也可以写为返回整形的形式
int result = 0;
while(top != -1){
result = result * 10 + stack[top--];
}
return result;
printf("%d",result);
}