当输入由计算机生成的随机数时,如何反转数组的输出?

问题描述 投票:0回答:2

我当前遇到的问题是我的代码创建了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; 
} 
c++ arrays random reverse
2个回答
0
投票

在您的第一个for循环中,将此num[rand_num] = rand_num更改为num[i] = rand_num,将printf("%d ", num[rand_num])更改为printf("%d", num[i])


0
投票

问题是您使用了num[rand_num]。这意味着您对数组的访问受一个随机数控制,而不是i

© www.soinside.com 2019 - 2024. All rights reserved.