Random с массива

Тема в разделе "Общие вопросы по С и С++", создана пользователем eReS, 28 дек 2008.

  1. eReS

    eReS Гость

    Есть массив mas[1,4,6,8,43,78,5,89,156,48,45,98,432,79,654,783,257,375,769,33]
    Нужно сделать чтоб функция random генериловала число хаотически с этого массива и заносила в переменную к.
     
  2. eReS

    eReS Гость

    Вот написал програмку, но почемуто вместо результата выводит постоянно -29906. Помогите решить проблему

    [codebox]
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <math.h>

    int x,prioritet;
    float kapital=1000;

    void main()
    {
    float stavka;
    int i,variantu[111,112,113,114,115,116,117,
    121,122,123,124,125,126,127,
    131,132,133,134,135,136,137,
    141,142,143,144,145,146,147,
    151,152,153,154,155,156,157,
    161,162,163,164,165,166,167,
    171,172,173,174,175,176,177];
    clrscr();
    while (i>0 && i<50)
    {
    i = rand();
    }
    printf("vupalo chislo:%d",variantu);
    }
    [/codebox]
     
  3. Setry

    Setry Гость

    вместо этого цикла: while(i>0 && i<50){ i = rand(); }, напиши:

    i=rand()%(sizeof(variantu)/sizeof(variantu[0]));
     
  4. JORIK

    JORIK Гость

    #include <stdio.h>
    #include <time.h>
    #include <stdlib.h>

    #define N 20

    int main()
    {
    int mas[] = {1,4,6,8,43,78,5,89,156,48,45,98,432,79,654,783,257,375,769,33};
    for (int i = 0; i < N; i++)
    printf("%d\t",mas);
    srand(time(0)); //связываем генератор случайных чисел со временем,чтобы генерировались реальные случайные числа(без периодов и повторов)
    rand(); //холостой выстрел
    int k = mas[rand()%(N + 1)]; //генерация числа из массива mas и запись в переменную k

    printf("\n\n%d\n",k);
    return 0;
    }

    вроде работает.Ну а вывод сам поправь,чтобы было поприятнее,напр., "A generated number of our array is: %d" и т.д.
     
Загрузка...

Поделиться этой страницей