随机替换数组中的数字

时间:2017-01-07 21:52:38

标签: c arrays

我如何用X替换数组中的随机数,因为我想在打印数组时随机不显示某些数字。

所以例如我有一个像这样编码的数组:

  void main()
{

    int Array[3][3];
    int row, col;

    for (row = 0; row<3; row++)
    {
        for (col = 0; col<3; col++)
        {
            if (col == 0)
            {
                Array[row][col] = (rand() % 10);

            }//end of 1st col

            else if (col == 1)
            {
                Array[row][col] = (rand() % 10);

            }//end of 2nd col

            else if (col == 2)
            {
                Array[row][col] = (rand() % 10);

            }//end of 3rd col

        }// end col for

        printf("\n");

    }// end row for 

    //print
    for (row = 0; row < 3; row++)
    {
        for (col = 0; col < 3; col++)
        {
            printf("%d \t", Array[row][col]);

        }// end col for

        printf("\n");

    }// end row for ptinting the array
    _getch();
}

示例输出是:

1 7 4

0 9 4

8 8 2

我想用这样的X随机替换这个数组中的数字:

1 x 4

x 9 4

8 8 x

感谢。

3 个答案:

答案 0 :(得分:0)

第一个代码中的第一个代码不需要条件“if”除了不需要条件之外,这将在exécution方面产生很大的延迟。

现在为随机x juste创建一个循环,逐步抛出row元素,对于每个incrémentation,你调用此循环中的随机函数,返回的随机值必须是0到2之间的值,所以创建一个while检查返回超出值的条件和条件是返回的值在0到2之间,一旦完成,这个值将是你要放置x的col索引

答案 1 :(得分:0)

不确定这是否是您正在寻找的

#include <stdio.h>
#include <time.h>

void main() {
    int Array[3][3];
    int row,col;

    srand(time(NULL));

    for(row=0;row<3;row++)
        for(col=0;col<3;col++)
            Array[row][col] = rand() % 10;

    for(row=0;row<3;row++) {
        for(col=0;col<3;col++)
            if(rand() % 2)
                printf("%d ", Array[row][col]);
            else
                printf("X ");
        printf("\n");
    }        
}

答案 2 :(得分:0)

感谢A.S.H这就是我所做的:

void main()
{

    int Array[3][3];
    int row, col;

    srand(time(NULL));
    for (row = 0; row<3; row++)
    {
        for (col = 0; col<3; col++)
        {
            if (col == 0)
            {
                Array[row][col] = (rand() % 10);

            }//end of 1st col

            else if (col == 1)
            {
                Array[row][col] = (rand() % 10);

            }//end of 2nd col

            else if (col == 2)
            {
                Array[row][col] = (rand() % 10);

            }//end of 3rd col

        }// end col for

        printf("\n");

    }// end row for 

    //print
    for (row = 0; row < 3; row++)
    {
        for (col = 0; col < 3; col++)
        {


            if (rand() % 9 < 4)
            {
                printf("%d \t", Array[row][col]);
            }
            else
            {
                printf("%s \t", "X");
            }
        }// end col for

        printf("\n");

    }// end row for ptinting the array
    _getch();
}

获得打印输出:

x x 9

x x 5

3 0 x

目前有太多的数字似乎都是x,但这可能是我在某处无法看到的错误。