C生成100个随机数

时间:2014-08-05 04:43:05

标签: c

在C中,我需要生成100个随机数,然后按降序对它们进行排序。截至目前,我有这个,这是一个绝对的混乱。我可以告诉我,这一切都是错的,但我没有足够的经验,实际上能够以理智的方式写出来。有人可以帮忙吗?

/*100 random numbers in range 1-10*/
/*sorted in descending order*/
#include <stdio.h>
void random(char *nums, int count);

int main(void) {
    int random_num, count;
    char nums[100];
    for(count = 0; count < 100; count++) {
        random(&nums, count);
    }

    for(count = 0; count < 100; count++) {
        printf("%d\t", nums[count]);
    }

    return 0;
}

void random(char *nums, int count) {
    int random_data = fopen("/dev/random", "r");
    nums[count] = fread[random_data];
}

3 个答案:

答案 0 :(得分:1)

请致电rand()上的stdlib.h

#include <stdlib.h>

int main(void) {
    int random_num, count;

    srand(time(NULL));
    char nums[100];
    for(count = 0; count < 100; count++) {
        nums[count] = rand();
    }

    for(count = 0; count < 100; count++) {
        printf("%d\t", nums[count]);
    }

    return 0;
}

答案 1 :(得分:0)

1个随机数:第一个srand(time(0)),然后用rand()生成你想要的数字

2 sort:使用qsort(array,n,sizeof(int),comp);

 //here comp let the number in desc order
int  comp(const void*a,const void*b)
{
    return *(int*)b-*(int*)a;
}

他们都需要&lt;文件stdlib.h&GT;

答案 2 :(得分:0)

试试这段代码,我还提供了按降序排序值的代码。

/*100 random numbers in range 1-10*/
/*Sorted in descending order*/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

void sorting(char *numbers) /* Sorting in descending order */
{
    int i,j,temp;
    for(i=1;i<100;i++)
    {
        for(j=0;j<100-i;j++)
        {
            if(numbers[j] < numbers[j+1])
            {
                temp = numbers[j+1];       
                numbers[j+1] = numbers[j];
                numbers[j] = temp;
            }
        }
    }
}

int main(void) {
    int random_num, count;

    srand(time(NULL));
    char nums[100];
    for(count = 0; count < 100; count++) {
        /* Mod by 11 as we need range 1-10 */
        nums[count] = rand() % 11;
    }
    /* Sorting in descending order */
    sorting(nums);

    printf("Printing values after sorting.\n");
    for(count = 0; count < 100; count++) {
        printf("%d\n", nums[count]);
    }
    return 0;
}
相关问题