C 如何创建带有随机字母a..z的字符方阵

C 如何创建带有随机字母a..z的字符方阵,c,C,几天前我就开始用C语言工作了。我想用随机小写字母a..z创建字符的方阵。 比如: a x r z b q e s w o t x 皮尤 如何在C语言中创建这样的方阵。我已经搜索过了,但没有找到任何解决方案。如果有人能给我一个解决方案,这会很有帮助。这应该让你开始: #include <time.h> #include <stdlib.h> #define SIZE 4 void Init(char matrix[SIZE][SIZE]) { int i,j;

几天前我就开始用C语言工作了。我想用随机小写字母a..z创建字符的方阵。 比如:

a x r z
b q e s
w o t x
皮尤


如何在C语言中创建这样的方阵。我已经搜索过了,但没有找到任何解决方案。如果有人能给我一个解决方案,这会很有帮助。

这应该让你开始:

#include <time.h>
#include <stdlib.h>

#define SIZE 4

void Init(char matrix[SIZE][SIZE])
{
    int i,j;
    for (i=0; i<SIZE; i++)
        for (j=0; j<SIZE; j++)
            matrix[i][j] = (char)('a'+rand()%('z'-'a'+1));
}

int main()
{
    char matrix[SIZE][SIZE];
    srand((unsigned int)time(NULL));
    Init(matrix);
    // The rest of your program...
    return 0;
}
#包括
#包括
#定义大小4
void Init(字符矩阵[SIZE][SIZE])
{
int i,j;

对于(i=0;i这应该让您开始:

#include <time.h>
#include <stdlib.h>

#define SIZE 4

void Init(char matrix[SIZE][SIZE])
{
    int i,j;
    for (i=0; i<SIZE; i++)
        for (j=0; j<SIZE; j++)
            matrix[i][j] = (char)('a'+rand()%('z'-'a'+1));
}

int main()
{
    char matrix[SIZE][SIZE];
    srand((unsigned int)time(NULL));
    Init(matrix);
    // The rest of your program...
    return 0;
}
#包括
#包括
#定义大小4
void Init(字符矩阵[SIZE][SIZE])
{
int i,j;

对于(i=0;i,@barak给出的代码绝对有效。我添加了一些代码来打印该矩阵

#include <time.h>
#include <stdlib.h>

#define SIZE 4

void Init(char matrix[SIZE][SIZE])
{
    int i,j;
    for (i=0; i<SIZE; i++)
    for (j=0; j<SIZE; j++)
        matrix[i][j] = 'a'+rand()%('z'-'a'+1);
}

int main()
{
    char matrix[SIZE][SIZE];
    int i,j;
    srand((unsigned int)time(NULL));
    Init(matrix);
    for(i=0;i<SIZE;i++){
        for(j=0;j<SIZE;j++){
            printf("%c",matrix[i][j]);
        }
        printf("\n");
    }
    return 0;
}
#包括
#包括
#定义大小4
void Init(字符矩阵[SIZE][SIZE])
{
int i,j;

对于(i=0;i,@barak给出的代码绝对有效。我添加了一些代码来打印该矩阵

#include <time.h>
#include <stdlib.h>

#define SIZE 4

void Init(char matrix[SIZE][SIZE])
{
    int i,j;
    for (i=0; i<SIZE; i++)
    for (j=0; j<SIZE; j++)
        matrix[i][j] = 'a'+rand()%('z'-'a'+1);
}

int main()
{
    char matrix[SIZE][SIZE];
    int i,j;
    srand((unsigned int)time(NULL));
    Init(matrix);
    for(i=0;i<SIZE;i++){
        for(j=0;j<SIZE;j++){
            printf("%c",matrix[i][j]);
        }
        printf("\n");
    }
    return 0;
}
#包括
#包括
#定义大小4
void Init(字符矩阵[SIZE][SIZE])
{
int i,j;

对于(i=0;i首先要考虑到,没有必要像EBCDIC中那样,所有小写字母在没有中间符号的情况下相互跟随。因此,最好自己定义相应的序列

这是一个演示程序

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

void square_matrix_init( size_t n, char matrix[][n] )
{
    char *s = "abcdefghijklmnopqrstuvwxyz";
    const size_t N = 26;

    for ( size_t i = 0; i < n; i++ )
    {
        for ( size_t j = 0; j < n; j++ ) matrix[i][j] = s[ rand() % N ];  
    }
}   

int main(void) 
{
    size_t n = 4;

    char matrix[n][n];

    srand( (unsigned int )time( NULL ) );

    for ( size_t i = 0; i < n; i++ )
    {
        square_matrix_init( n, matrix );

        for ( size_t k = 0; k < n; k++ )
        {
            for ( size_t l = 0; l < n; l++  ) printf( "%c ", matrix[k][l] );
            printf( "\n" );
        }

        printf( "\n" );
    }

    return 0;
}

首先要考虑的是,没有必要像EBCDIC中那样,所有小写字母在没有中间符号的情况下相互跟随,因此最好自己定义相应的序列

这是一个演示程序

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

void square_matrix_init( size_t n, char matrix[][n] )
{
    char *s = "abcdefghijklmnopqrstuvwxyz";
    const size_t N = 26;

    for ( size_t i = 0; i < n; i++ )
    {
        for ( size_t j = 0; j < n; j++ ) matrix[i][j] = s[ rand() % N ];  
    }
}   

int main(void) 
{
    size_t n = 4;

    char matrix[n][n];

    srand( (unsigned int )time( NULL ) );

    for ( size_t i = 0; i < n; i++ )
    {
        square_matrix_init( n, matrix );

        for ( size_t k = 0; k < n; k++ )
        {
            for ( size_t l = 0; l < n; l++  ) printf( "%c ", matrix[k][l] );
            printf( "\n" );
        }

        printf( "\n" );
    }

    return 0;
}

你有多远?你知道如何创建2D数组(矩阵)吗在C语言中?如果是这样的话,为什么你不能创建一个方阵?或者你可以创建一个方阵,但你不知道如何将随机值放入其中?请澄清你的问题,展示你所尝试的,并强调你所尝试的问题。生成一个介于0和26之间的数字,向其添加
'a'
。将其分配给矩阵的一个元素x、 重复直到矩阵被填充。我已经创建了字符的方阵。我不知道如何创建字符的随机方阵。如果你不介意重复,只需为每个数组元素分配一个随机字母。否则,将一个包含所有字母的数组混洗,并将前N个元素分配给你的数组。你有多远?你知道如何使用c吗创建二维阵列(矩阵)在C语言中?如果是这样的话,为什么你不能创建一个方阵?或者你可以创建一个方阵,但你不知道如何将随机值放入其中?请澄清你的问题,展示你所尝试的,并强调你所尝试的问题。生成一个介于0和26之间的数字,向其添加
'a'
。将其分配给矩阵的一个元素x、 重复,直到矩阵被填充。我已经创建了字符的方阵。我不知道如何创建字符的随机方阵。如果你不介意重复,只需为每个数组元素分配一个随机字母。否则,将一个包含所有字母的数组混洗,并将前N个元素分配给数组。你应该使用
SIZE
来继续滚动打印数组的循环。@pmg-true。我已经编辑了该代码。感谢您的建议。:)您应该使用
SIZE
来控制打印数组的循环。@pmg-true。我已经编辑了该代码。感谢您的建议。:)如果OP想要洗牌数组(或获取唯一值)他需要稍微不同的
char s[]=“abcdefghijklmnopqrstuvxyz”
如果OP想要洗牌数组(或获取唯一值),他需要稍微不同的
char s[]=“abcdefghijklmnopqrstuvxyz”