supermario
27-02-2007, 20:42
Ciao
come mai non riesco a generare dei veri numeri casuali grazie a questo codice??
#include <stdio.h>
#include <stdlib.h>
#define DIM 6
int mario[DIM];
int vetmario[90];
void genera(int*);
void scrivi();
void ordina(int*, int);
int main()
{
int t;
for (t=0; t<=20;t++)
{
genera(mario);
ordina(mario, DIM);
scrivi();
printf("\n");
}
return 0;
}
void genera (int* Array)
{
int p, k;
int seed;
for(p=0;p<= DIM;p++)
{
for (k=0;k<=seed;k++)
{
srand(time(NULL));
vetmario[k]= rand()%seed;
}
mario[p] = vetmario[k-1];
}
}
void scrivi()
{
int k;
for (k=0;k<=DIM;k++)
{
printf("%d ", mario[k]);
}
}
void ordina(int* Array, int elemN)
{
int i, tmp, ultimo;
int alto = (elemN - 1);
while (alto >= 0)
{
ultimo = -1;
for (i=0; i<alto; i++)
if (mario[i]>mario[i+1])
{
tmp = mario[i];
mario[i] = mario[i+1];
mario[i+1] = tmp;
ultimo = i;
}
alto = ultimo;
}
}
il problema dovrebbe stare nella funzione genera...qualcuno mi sa dare una mano?
ps, il programma è efficiente o potrebbe essere migliorato?
Grazie per l'aiuto
come mai non riesco a generare dei veri numeri casuali grazie a questo codice??
#include <stdio.h>
#include <stdlib.h>
#define DIM 6
int mario[DIM];
int vetmario[90];
void genera(int*);
void scrivi();
void ordina(int*, int);
int main()
{
int t;
for (t=0; t<=20;t++)
{
genera(mario);
ordina(mario, DIM);
scrivi();
printf("\n");
}
return 0;
}
void genera (int* Array)
{
int p, k;
int seed;
for(p=0;p<= DIM;p++)
{
for (k=0;k<=seed;k++)
{
srand(time(NULL));
vetmario[k]= rand()%seed;
}
mario[p] = vetmario[k-1];
}
}
void scrivi()
{
int k;
for (k=0;k<=DIM;k++)
{
printf("%d ", mario[k]);
}
}
void ordina(int* Array, int elemN)
{
int i, tmp, ultimo;
int alto = (elemN - 1);
while (alto >= 0)
{
ultimo = -1;
for (i=0; i<alto; i++)
if (mario[i]>mario[i+1])
{
tmp = mario[i];
mario[i] = mario[i+1];
mario[i+1] = tmp;
ultimo = i;
}
alto = ultimo;
}
}
il problema dovrebbe stare nella funzione genera...qualcuno mi sa dare una mano?
ps, il programma è efficiente o potrebbe essere migliorato?
Grazie per l'aiuto