簡體   English   中英

如何在C中創建具有隨機字母a..z的字符的方陣

[英]How to create square matrix of characters with random, letters a..z in C

幾天之前,我已經開始使用C語言工作。 我想用隨機的小寫字母a..z創建字符的方陣。 喜歡:

axrz
bqes
wotx
pyuo

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;
}

@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;
}

首先要考慮的是,不必像EBCDIC中那樣,所有小寫字母都彼此跟隨而沒有一些中間符號。 因此最好是tp自己定義相應的序列。

這是一個示范節目

#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;
}

程序輸出可能看起來像

p p g z 
c i v n 
v y n p 
w g x t 

w i e l 
l i c q 
u f y e 
d z t s 

o z t t 
i q i f 
q w v m 
c s h y 

a m k l 
w o e q 
t e v y 
d q s u 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM