需求:编写程序使十进制转换成为二进制
分析:十进制转换二进制。如图,只需要不断除以2,然后将余数逆置即可,我们可以将余数依次输入到栈中,利用栈先进后出的特性,再将栈中元素输出即可得到二进制序列
![v2-4df246fdb6066e3dae72c5280058ac40_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=adee1b4c-c42f-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-4df246fdb6066e3dae72c5280058ac40_b.jpg)
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);
}