#include <stdio.h> #include <math.h> /* double型データをint型へ */ int rintv(double value) { if(value > 0) return (int)(value + 0.5); else return (int)(value - 0.5); } /* 0〜max までの乱数の発生(int型) */ int random(int max,unsigned long* idum) { *idum=(*idum)*1103515245 + 12345; return rintv(max * ((double)(*idum/65536 % 32768) / (double)32767)); } int main() { int i,cpos; char str[8]="murakami"; unsigned long idum; idum = time(NULL); /* 乱数発生のための変数の初期化 */ for(i=0;i<10;i++){ cpos = random(8,&idum); printf("[%d]:%c,",cpos,str[cpos]); } printf("\n"); return 0; }
Gami[822]% list_14.exe [2]:r,[6]:m,[1]:u,[1]:u,[7]:i,[3]:a,[5]:a,[5]:a,[4]:k,[8], Gami[823]%