#include <stdio.h> int main() { int n; scanf("%d",&n); if(n == 0)printf("0"); int a[1000],idx = 0; while(n > 0) { int num = n % 2; a[idx] = num; idx ++ ; n = n / 2; } for(int i = idx - 1;i >= 0;i -- )printf("%d",a[i]); return 0; }注释
时间: 2024-03-17 16:42:35 浏览: 73
这是一个将十进制整数转换为二进制表示的程序。代码如下:
```c
#include <stdio.h>
int main() {
int n;
scanf("%d", &n); // 输入十进制整数
if (n == 0) {
printf("0");
}
int a[1000],idx = 0;
while (n > 0) {
int num = n % 2; // 取余数
a[idx] = num; // 将余数存入数组
idx ++ ; // 数组下标加1
n = n / 2; // 取整数部分
}
for (int i = idx - 1; i >= 0; i -- ) {
printf("%d",a[i]); // 从高位到低位依次输出二进制数
}
return 0;
}
```
程序思路:将十进制整数不断除以2,每次取余数,直到商为0为止。将每次得到的余数存入数组中,最后从数组高位到低位依次输出,得到该十进制整数的二进制表示。
相关问题
#include <stdio.h> #include <math.h> int main() { int j; int p;int q;int n;int flagp;int flagq; printf("输入 n"); scanf("%d",&n); if (((n%2)!=0)||(n<=4) printf("")
这段代码缺少了一个右括号,导致编译错误。正确的代码应该是这样的:
```c
#include <stdio.h>
#include <math.h>
int main() {
int j;
int p;
int q;
int n;
int flagp;
int flagq;
printf("输入 n");
scanf("%d", &n);
if (((n % 2) != 0) || (n <= 4)) { // 缺少了一个右括号
printf("");
}
return 0;
}
```
这段代码还有其他问题,比如 `printf` 输出的内容为空字符串,没有意义。
9 、设计函数,利用递归实现n!(程序运行时,输入一个整数7) #include <stdio.h> #include <stdlib.h> int f1(int n) { int f; if(n==0||n==1) f=1; else f=n*f1(n-1); return f; } int main() { int n,j; scanf("%d",&n); j=f1(n); printf("%d!=%d\n",n,j); return 0; }
这是一个 C 语言程序,它利用递归实现了求 n 的阶乘。在这个程序中,我们定义了一个递归函数 f1,用来计算 n 的阶乘。如果 n 等于 0 或 1,则返回 1;否则,递归求解 n-1 的阶乘,然后将结果乘以 n,即可得到 n 的阶乘。最后,在 main 函数中读入一个整数 n,调用 f1 函数求出 n 的阶乘,然后输出结果。以下是这个程序的代码:
```c
#include <stdio.h>
#include <stdlib.h>
int f1(int n) {
int f;
if(n == 0 || n == 1)
f = 1;
else
f = n * f1(n - 1); // 递归求解 n 的阶乘
return f;
}
int main() {
int n, j;
scanf("%d", &n);
j = f1(n);
printf("%d!=%d\n", n, j);
return 0;
}
```
当输入 7 时,程序会输出:
```
7!=5040
```
阅读全文
相关推荐

















