我在C中实现数组的反转时遇到了麻烦。我正在使用linux / nano,我们刚刚开始,所以教的很少。下面的代码是我所拥有的,并且数组将打印输入的任何整数的二进制数,但在此代码中,二进制文件与它应该是相反的。
#include "stdio.h"
#define MAX_BITS 32
int main()
{
int num;
printf("Enter a valid positive integer: ");
scanf("%d", &num);
int array[MAX_BITS];
int bit, val;
int numDown = 1;
while (numDown <= num)
{
val = numDown;
while (val > 0)
{
bit = val % 2;
printf("%d",bit);
val = val / 2;
}
printf("\n");
numDown = numDown + 1;
}
return 0;
}
我知道我需要一个while循环,但我不确定如何去做。
答案 0 :(得分:0)
#include <stdio.h>
#define MAX_BITS 32
int main()
{
int num;
printf("Enter a valid positive integer: ");
scanf("%d", &num);
char array[MAX_BITS];
int index = MAX_BITS - 1;
int temp = num;
do
{
array[index--] = temp % 2;
temp /= 2;
}while(temp != 0);
printf("Binary of %d is: ", num);
for (int i = index + 1; i < MAX_BITS; ++i )
{
printf("%d", array[i]);
}
printf("\n");
return 0;
}