[英]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.