C言語で、アルファベットのつづりをばらばらに並べ替えたいときの処理。
例えば、
YamadaTaro
を
TamaaardYo
などとしたい場合。
実行イメージ(並べ替え結果を5回表示)
spell? YamadaTaro
result:
daTmYraaao
TamaaardYo
aTadaoaYrm
TaodYmaraa
rmdaaTYoaa
ソースコード
randomSpell.c
/* randomSpell.c: スペルをランダムに並べ替える */ #include <stdio.h> #include <time.h> #include <string.h> #include <stdlib.h> int main(void) { int i, j, length, r; char name[256], work; srand( (unsigned)time(NULL) ); /* スペル入力 */ printf("spell? "); scanf("%s", name); /* 入力したスペルの文字数取得 */ length = strlen(name); /* 5回表示 */ printf("\nresult:\n"); for(i=0; i<5; i++){ /* 並べ替え */ for(j=0; j<length; j++){ r = rand() % length; /* 並べ替え位置をランダムで選択 */ work = name[j]; /* 並べ替え */ name[j] = name[r]; name[r] = work; } /* 並べ替え結果表示 */ printf("\t%s\n", name); } return 0; }
コメント