使用给定数组反转C中的数组

时间:2018-02-09 01:53:23

标签: c arrays linux

我在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循环,但我不确定如何去做。

1 个答案:

答案 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;
}