作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经编写了这段用于将十进制数转换为二进制数的代码,但它打印的数字反之亦然,我该如何进行这项工作?我可以使用 getch 命令来实现吗?我们目前正在学习 getch。
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
for(;n>0;n=n/2){
int d = n%2;
printf("%d", d);
}
return 0;
}
最佳答案
你可以通过使用递归函数来解决这个问题:
#include <stdio.h>
void print_binary(int n)
{
if (n != 0) {
print_binary(n/2);
printf("%d ", n%2);
}
}
int main() {
int n;
scanf("%d", &n);
print_binary(n);
return 0;
}
通过在递归调用返回后打印,数字以相反的顺序打印。
每次调用 print_binary
时,它都会使用参数 n/2
调用自身,然后打印最低有效位。但是,每个递归调用都做同样的事情。
下面是 n
等于 11(二进制 1011)时调用堆栈的样子:
main
scanf
print_binary(11)
print_binary(5)
print_binary(2)
print_binary(1)
print_binary(0)
printf("%d ", 1);
printf("%d ", 0);
printf("%d ", 1);
printf("%d ", 1);
您可以看到,这导致首先打印最高有效位。
关于c - 如何使 printf 从右到左,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40430524/
目前我正在使用 [self presentModalViewController :newVC animated:YES] 。我想从左/右/顶部/底部呈现带有推送效果的 newViewcontroll
我正在尝试实现“带有上一个和下一个的部分幻灯片”。这些部分的标记如下: Section 1 Section 2 Section 3 Prev Next 除具有 acti
我的问题与此处提出的问题几乎相同:question 不同的是,我想从右边切换第 2 位和第 4 位数字,而不是像另一个问题中那样从左边切换。所以在我的例子中最右边的数字是 1。示例:283926.67
我是一名优秀的程序员,十分优秀!