【问题标题】:input random matrix with only " * " and " SPACE "输入只有“*”和“SPACE”的随机矩阵
【发布时间】:2026-02-15 16:25:02
【问题描述】:

我知道如何设置范围,但 * 和 SPACE 介于 32 和 42 之间......我只需要其中一个来输入我的矩阵。

{
int i,j;
char matrix[SIZE][SIZE],c;
srand(time(NULL));
for (i=0;i<SIZE;i++)
{
    for (j=0;j<SIZE;j++)
    {
        c=(rand()%32) || (rand()%42);
        matrix[i][j]=c;
        printf("%3c", matrix[i][j]);
    }
    printf("\n");
}

【问题讨论】:

  • 随机取一或零,然后用它来决定。

标签: c random matrix char


【解决方案1】:

经典方法使用数组查找:

c = " *"[rand() % 2];

【讨论】:

    【解决方案2】:

    这个呢?

    c = rand() % 2 ? ' ' : '*';
    

    或者,没有坏坏的三元运算符

    if( rand() % 2 ) {
        c = ' ';
    }
    else {
        c = '*';
    }
    

    【讨论】: