如何成对存储二维数组中的随机字母?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何成对存储二维数组中的随机字母?相关的知识,希望对你有一定的参考价值。

我在c中制作一个游戏,需要一个大小为m * n的2D数组,需要成对存储字母。这是一个记忆游戏,用户需要从矩阵中选择隐藏的2个插槽。如果它们都匹配,那么它们将从矩阵中删除。

例如:对于数组a [3] [4]它应该存储

a t x e
b a t n 
x b n e
答案

虽然我正在共享代码,但请尝试自己输入代码。我正在给出这个答案的一些步骤,如果你想自己实现它,这应该可以帮助你思考代码。

这是一些步骤。

1)输入mn

int m, n;
scanf("%d%d", &m, &n);

2)为数组分配内存

char *arr[m];
for (i = 0; i < n; ++i) {
    arr[i] = malloc(n * sizeof(char));
}

3)现在,既然你在一条评论中提到过,程序应该生成随机字母而不是数字,让我告诉你,C允许从intchar转换数据类型。以下是生成随机字符的方法。

for (i = 0; i < m; ++i) {
    for (j = 0; j < n; ++j) {
        c = (char) (rand() % 26) + 'a'; // Generate a random character between 'a' and 'z'
        arr[i][j] = c;
    }
}

这是完整的代码:

#include <stdio.h>
#include <stdlib.h>
int main() {
    int m, n, i, j;
    char c;
    scanf("%d%d", &m, &n);

    char *arr[m];
    for (i = 0; i < n; ++i) {
        arr[i] = malloc(n * sizeof(char));
    }

    for (i = 0; i < m; ++i) {
        for (j = 0; j < n; ++j) {
            c = (char) (rand() % 26) + 'a'; // Generate a random character between 'a' and 'z'
            arr[i][j] = c;
            printf("%c ", c);
        }
        printf("
");
    }
}

输入:

3
4

输出:

n w l r 
b b m q 
b h c d 

我认为这是预期的产量!

谢谢。

以上是关于如何成对存储二维数组中的随机字母?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 struct 覆盖二维数组中的所有整数?

如何使用范围中的随机值填充数组? (重复没问题。)

如何将数据存储在动态二维数组中,该数组在 C++ 中的另一个结构中也使用的结构中声明

c语言对二维数组的某一行赋值 如u8 a[20][20]; 仅对a[10]这一行赋值

如何使用 C# 从表中的二维数组输出值

C ++根据用户输入字符串长度创建二维数组