使用给定数组对C中的数组进行反转
我在C语言中实现数组反转时遇到了问题。我正在使用linux/nano,我们刚刚开始,所以已经教授了非常少的内容。下面的代码就是我所拥有的,数组将打印输入的任何整数的二进制数,但是在这段代码中,二进制与它应该是的相反使用给定数组对C中的数组进行反转,c,arrays,linux,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
#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;
}
#包括“stdio.h”
#定义最大\u位32
int main()
{
int-num;
printf(“输入有效的正整数:”);
scanf(“%d”和&num);
整数数组[MAX_位];
int位,val;
int numDown=1;
while(numDown 0)
{
位=值%2;
printf(“%d”,位);
val=val/2;
}
printf(“\n”);
numDown=numDown+1;
}
返回0;
}
我知道我需要一个while循环,但我不确定该怎么做。#include
#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;
}
#定义最大\u位32
int main()
{
int-num;
printf(“输入有效的正整数:”);
scanf(“%d”和&num);
字符数组[最大字节];
int index=最大字节数-1;
int temp=num;
做
{
数组[索引--]=临时%2;
温度/=2;
}而(温度!=0);
printf(“二进制的%d为:”,num);
对于(int i=索引+1;i
未初始化的数组与while
循环有什么关系?我不明白你的问题。这段代码大部分已经给了我,它打印出前面每个数字的二进制表示。所以如果我输入13,它会以二进制打印出13之前的每个数字,唯一的问题是它是向后的。我知道循环的作用,但我看不出代码和你的问题之间有任何关联。在C中使用给定数组要求反转数组,但从未使用该数组。那么你真正的问题是什么呢?我得到了一个可以容纳32的MAX_BITS数组,使用它,我必须在数组中设置一个数字,然后反转它,这样它基本上可以向后打印,但我不知道怎么做。你没有用数组做任何事情,这可能是一个很大的线索,告诉你如何使用你已经拥有的大部分代码。