Buenas , tengo un trozo de codigo que deberia generarme aleatoriamente dos datos y resulta que siempre me salen los mismos que son el 3,25 y el 5,00
El codigo es el siguiente:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
#define NUM_DATOS 1000000
#define MAX_LONG 30
#define MAX_CLUSTER 3
#define PI 3.141592
#define rango 7
struct tDato
{
double d1,d2;
};
struct tDato generador();
struct tDato generador()
{
struct tDato c;
int i;
double angulo;
double radio;
i = rand()%rango;
angulo = rand()%2*PI*1000000;
angulo /= 1000000;
switch (i)
{
case 0:
case 1:
case 2:
radio = rand()%25 / 10;
c.d1 = 2 + radio*cos(angulo);
c.d2 = 7 + radio*sin(angulo);
break;
case 3:
case 4:
radio = rand()%15 / 10;
c.d1 = 5 + radio*cos(angulo);
c.d2 = 5 + radio*sin(angulo);
break;
case 5:
radio = rand()%10 / 10;
c.d1 = 7 + radio*cos(angulo);
c.d2 = 5 + radio*sin(angulo);
break;
default:
c.d1 = rand()%1000 / 100.0;
c.d2 = rand()%1000 / 100.0;
break;
}
return c;
}
int main()
{
struct tDato d;
d=generador();
printf("d1 =%lf\n",d.d1);
printf("d2 =%lf",d.d2);
return 0;
}
Gracias de antemano
El codigo es el siguiente:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
#define NUM_DATOS 1000000
#define MAX_LONG 30
#define MAX_CLUSTER 3
#define PI 3.141592
#define rango 7
struct tDato
{
double d1,d2;
};
struct tDato generador();
struct tDato generador()
{
struct tDato c;
int i;
double angulo;
double radio;
i = rand()%rango;
angulo = rand()%2*PI*1000000;
angulo /= 1000000;
switch (i)
{
case 0:
case 1:
case 2:
radio = rand()%25 / 10;
c.d1 = 2 + radio*cos(angulo);
c.d2 = 7 + radio*sin(angulo);
break;
case 3:
case 4:
radio = rand()%15 / 10;
c.d1 = 5 + radio*cos(angulo);
c.d2 = 5 + radio*sin(angulo);
break;
case 5:
radio = rand()%10 / 10;
c.d1 = 7 + radio*cos(angulo);
c.d2 = 5 + radio*sin(angulo);
break;
default:
c.d1 = rand()%1000 / 100.0;
c.d2 = rand()%1000 / 100.0;
break;
}
return c;
}
int main()
{
struct tDato d;
d=generador();
printf("d1 =%lf\n",d.d1);
printf("d2 =%lf",d.d2);
return 0;
}
Gracias de antemano