異なる乱数列を複数個生成するプログラムを作っています。
入力nとmをそれぞれ列数と個数として、数字、大英文字、小英文字の乱数を出力させます。
ここまでのプログラムはできました。
さらに、この列がそれぞれ違う列になりm通りのものとなっているように変更したいです。
aaaa1とaaaa2など、一文字でも違えば、違うものの扱いとします。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
int makeRand(int min,int max){ //乱数生成
return min+(int)(rand()*(max-min+1.0)/(1.0+RAND_MAX));
}
main(void){
int i, j;
int n, m;
while(1){
printf("n=");scanf("%d",&n); //文字列n
if(n==0){break;}
else{printf("m=");scanf("%d",&m);} //文字列の数m
for(i=0;i<m;i++){
for(j=0;j<n;j++){
int sw,Num,Large,Small;
char pass[j][i];
sw = makeRand(1,3);
switch(sw){
case 1: //数字
Num = makeRand(0,9);
printf("%c",Num+48);
pass[j][i] = Num+48;
break;
case 2: //大文字
Large = makeRand(0,25);
printf("%c",Num+65);
pass[j][i] = Num+65;
break;
case 3: //小文字
Small = makeRand(0,25); printf("%c",Num+97);
pass[j][i] = Num+97;
break;
}
}
printf("\n");
}
}
return 0;
}
2次元配列をつくり、すべての配列がそれぞれ一致すれば乱数を作り直す、という関数を作ろうとしました。
が、頭の中で混乱してしまったのと、もっと良い方法がないかと思い、スレッドを作らせていただきました。
ご意見よろしくお願いします。