Hola que tal buenas
tengo otro peqeuó problemilla con c++
quiero hacer un script que transforme numeros decimales a fracciones. POR EJEMPLO DE 0.5 a 5/10 = 1/2
el problema es que en if ((b<0,11)&&(b>0,1)) {
no hace bien la comparacion y probado de cambiar la coma y de todo pero no he averiguado que le pasa aqui hay el codigo entero
#include <iostream>
#include <string>
#define cls string limpiarpantalla="cls";+system(limpiarpantalla.c_str ());
using namespace std;
//Pasa numeros decimales a fraccions
int simplifica(float n, float nn) {
float kk,k,a,s,ss = 0;
for (int i=1;i<10;i++) {
s = n/i;
ss = nn/i;
k=0;
k=ss-int(ss);
kk=s-int(s);
if ((k<1)&&(k>0)) {
} else if ((kk>0)&&(kk<1)) {
} else {
cout << endl << s << "/" << ss << endl;
}
}
}
int main () {
float a,b,r1;
cin >> a;
b=a-int(a);
cls
cout << b << endl;
if ((b<0,11)&&(b>0,1)) {
cout << a << " = " << a*10 << "/" << 10 << endl;
r1=a*10;
simplifica(r1, 10);
} else if ((b<0,101)&&(b>0,11)) {
cout << a << " = " << a*100 << "/" << 100 << endl;
r1=a*100;
simplifica(r1, 100);
}
}
MUCHAS GRACIAS
PD:Si no me explique bien perdonenme :P
Cita de: Stakewinner00 en 4 Agosto 2012, 19:47 PM
Hola que tal buenas
tengo otro peqeuó problemilla con c++
quiero hacer un script ...
¿Un script en C++? C++ es un lenguaje compilado no de scripting... En cuanto a la comparación del if ¿en pseudocódigo cual es?(vamos que que es lo que quieres comprobar en esa comparación).Ahhhhhh ya se lo que te pasa , es muy simple si quieres comparar numeros con punto flotante, la coma en el habla española es el separador para los decimales y el punto para los miles , pero para paises de habla anglosajona es completamente al revés y como el lenguaje de programación C++ está en ingles.. :
if(b<0.11 && b>0.1)
{
//Aqui el codigo
}
PD: Publica el código con las etiquetas GeSHi que colorea el código y se vé mejor.
Ok gracias por la info y perdon por no explicarme bien y lso errores :D
YA consegui lo k keria pero de una forma distinta lo publico por si a alguien le interesa
#include <iostream>
#include <string>
#define cls string limpiarpantalla="cls";+system(limpiarpantalla.c_str ());
using namespace std;
//Pasa numeros decimales a fraccions
int simplifica(float n, float nn) {
float kk,k,a,s,ss = 0;
for (int i=1;i<10;i++) {
s = n/i;
ss = nn/i;
k=0;
k=ss-int(ss);
kk=s-int(s);
if ((k<1)&&(k>0)) {
} else if ((kk>0)&&(kk<1)) {
} else {
cout << endl << s << "/" << ss << endl;
}
}
}
int main () {
float a,b,r1;
int d;
d=1;
cin >> a;
b=int(a)-a;
while (b!=0) {
a=a*10;
d = d * 10;
b=int(a)-a;
}
cls
simplifica(a, d);
}