c言語擬似乱数小結

1043 ワード

  • デマンド:出力[x,y]間の乱数
  • アルゴリズム:rand()%(y-x+1)+x
  • #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #include <sys/time.h>
    
    //    
    void swap(int *a, int *b){
        int temp= 0;
        temp = *a;
        *a = *b;
        *b = temp;
    }
    
    
    //      [20,40]         ,        。       。
    int main(void){
        int a[10] = {0}, 
            b[10] = {0},
            c[10] = {0};
        int i = 0, j = 0;
        struct timeval timeNow;
        gettimeofday(&timeNow, NULL);
        srand(timeNow.tv_usec); //     ,         。
    
        for (i = 0; i < 10; i++){
            a[i] = rand()%21+20;
            b[i] = rand()%21+20;
            c[i] = a[i] + b[i];
            printf("%d + %d = %d
    ",a[i],b[i],c[i]);     }          printf(" :
    ");     for(i = 0; i< 10 -1; i++){         for(j = 0; j< 10 -1 -i; j++){             if(c[j] < c[j+1])                 swap(&c[j], &c[j+1]);         }     }     for(i = 0; i< 10; i++){         printf("c[%d] = %d
    ",i,c[i]);     }     return 0; }