我当前遇到的问题是我的代码创建了40个数字并将其打印到一个数组中。尝试向后打印这组代码时,当我需要以相反的顺序打印整个第一个数组时,它只会在常规/普通数组中打印最终数字。谢谢您的帮助。我正在使用c ++。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int i;
int lower = 0, upper = 100; //Random number between 1 and 100 is generated
int rand_num;
int num[40];
srand(time(0));
printf("Your array is shown:\n");
for(i = 0; i < 40; i++)
{
rand_num = (rand() % (upper - lower + 1)) + lower;
num[rand_num] = rand_num;
printf("%d ",num[rand_num]);
}
printf("\nYour array backwards is:\n");
for(i = 39; i >= 0; i--)
{
printf("%d ", num[rand_num]);
}
return 0;
}
在您的第一个for
循环中,将此num[rand_num] = rand_num
更改为num[i] = rand_num
,将printf("%d ", num[rand_num])
更改为printf("%d", num[i])
。
问题是您使用了num[rand_num]
。这意味着您对数组的访问受一个随机数控制,而不是i
。