#1
by ぺこ » 7年前
初投稿です。
ネットで重複しないrand関数のソースコードを見つけ、for文を(i=0;i<5)でなく(i=1;i<=5)で回したいのですがうまくいきません。自分で手直ししたところxの値がでたらめになってしまいます。ご指摘お願いします。
code
int main(void){
int i,j;
int x[5];
int y[5];
srand(time(NULL));
for(i=0;i<5;i++){
y=i;
printf("y[%d]=%d \n", i, y);
}
for(i=0;i<5;i++){
x=y[rand()%(5-i)];
printf("-------x[%d]=%d\n",i, x);
for(j=0;j<4;j++){
if(y[j]>=x){
y[j]=y[j+1];
}
}
for(j=0;j<4-i;j++){
printf("y[%d]=%d \n", j, y[j]);
}
//printf("[%d]\n",x);
}
return 0;
}
/code
初投稿です。
ネットで重複しないrand関数のソースコードを見つけ、for文を(i=0;i<5)でなく(i=1;i<=5)で回したいのですがうまくいきません。自分で手直ししたところx[i]の値がでたらめになってしまいます。ご指摘お願いします。
code
int main(void){
int i,j;
int x[5];
int y[5];
srand(time(NULL));
for(i=0;i<5;i++){
y[i]=i;
printf("y[%d]=%d \n", i, y[i]);
}
for(i=0;i<5;i++){
x[i]=y[rand()%(5-i)];
printf("-------x[%d]=%d\n",i, x[i]);
for(j=0;j<4;j++){
if(y[j]>=x[i]){
y[j]=y[j+1];
}
}
for(j=0;j<4-i;j++){
printf("y[%d]=%d \n", j, y[j]);
}
//printf("[%d]\n",x[i]);
}
return 0;
}
/code