请问怎么能使这个结果倒叙输出
#include "stdafx.h"
#include <process.h>
int main()
{
int nNumb = 0;
printf("请输入一个整数: ");
scanf_s("%d", &nNumb);
_WHILE:
if ((nNumb & 1) == 1)
{
printf("1");
}
else
{
printf("0");
}
nNumb = nNumb >> 1;
if (nNumb != 0)
{
goto _WHILE;
}
system("pause");
return 0;
}
这是让一个数一二进制位输出的程序,我想要使结果倒叙应该怎么做
可以先将结果保存起来,计算完成了再反序输出。
这里提供一种递归方式:
#include <stdio.h>
void _binary(num) {
if (num > 1) {
_binary(num >> 1);
}
printf("%d", num & 0x01);
}
int main() {
int num =0;
scanf("%d", &num);
_binary(num);
return 0;
} json 发表于 2017-7-13 18:34
可以先将结果保存起来,计算完成了再反序输出。
这里提供一种递归方式:
还没学递归看不懂 那就使用非递归
#include <stdio.h>
#include <process.h>
int main()
{
char buf;
int index = 0;
int nNumb = 0;
printf("请输入一个整数: ");
scanf_s("%d", &nNumb);
_WHILE:
if((nNumb & 1) == 1)
{
buf = '1';
}
else
{
buf = '0';
}
nNumb = nNumb >> 1;
if(nNumb != 0)
{
goto _WHILE;
}
index--;
while(index >= 0)
{
putchar(buf);
}
printf("\n");
system("pause");
return 0;
}
请输入一个整数: 1024
10000000000
请按任意键继续. . .
页:
[1]