c·c++/c 프로그래밍

중복을 피하여 난수를 선택하는 방법1,2

바로이순간 2014. 3. 10. 11:49

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

int main() {

    int list[100], map[100]={0,};

    int i, x, n;


    printf("100이하 정수: ");

    scanf("%d", &n);

    srand(time(NULL));

    i=0;

    while(i<n) {

        x=rand()%100;

        if(map[x]!=0) continue;

        list[i]=x+1;

        map[x]=1;

        i+=1;

    }

    for(i=0;i<n;i+=1) {

        printf("%4d", list[i]);

    }

    printf("\n");


    return 0;

}


==========================================================


#include <stdio.h>

#include <stdlib.h>

#include <time.h>

int main () {

    int i,j,x=0;

    int a[10] ;

    srand((unsigned)time(NULL));

    x=rand()%10+1;

    a[0]=x;

    for (i=1;i<10;i+=1) {

        x=rand()%10+1;

        a[i]=x;

        for(j=0;j<i;j+=1) {

            if (a[j]==x) { break ; }

        }

        if(i>j) i-=1;

    }


    for (i=0;i<10;i+=1) {

         printf ("%d ", a[i]);

    }

    return 0;

}