Random с массива

  • Автор темы eReS
  • Дата начала
E

eReS

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

eReS

#2
Вот написал програмку, но почемуто вместо результата выводит постоянно -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]
 
S

Setry

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

i=rand()%(sizeof(variantu)/sizeof(variantu[0]));
 
J

JORIK

#4
#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" и т.д.