En mi código intento sacar un número de 3 cifras XYZ aleatorio y separar estas cifras independientemente X,Y,Z pero al hacerlo dependiendo del número lo hace bien o saca unos decimales que antes no estaban y redondea, hacia arriba o abajo arruinando algunos resultados.
La parte matemática está bien, se basa en poner el número como un número con decimales y quedarme con la parte entera, restar al número entero el entero y quedarme con los decimales, luego multiplicó estos para repetir el proceso.
Algunos de los números con los que me pasó esto eran:
y=562
y=92
y=485
y=260
y=687
y=477
Os dejo aquí mi código:
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
float ingot(){
srand(time(NULL));
float y = rand() % 999;
float a = y/100;
int b = a;
float c = (a-b)*10;
int d = c;
float e = (c-d)*10;
cout<<"y ="<<" "<<y<<endl;
cout<<"a ="<<" "<<a<<endl;
cout<<"b ="<<" "<<b<<endl;
cout<<"c ="<<" "<<c<<endl;
cout<<"d ="<<" "<<d<<endl;
cout<<"e ="<<" "<<e<<endl;
return 0;
};
int main(){
ingot();
};
¿Alguien sabe como arreglar esto, el fallo o cómo puedo hacerlo bien? Gracias!