necesito ayuda en c++

#1
:eolo:eek:la amigos bakunos necesito ayuda con un programa en dev c++
lo que pasa es que no puedo hacer que un numero q irlo restando por 1 se multipleque por el anterior y asi sucesivamente por ejemplo tengo 4.5 decrementando por 1 seria algo asi: 4.5, 3.5, 2.5, 1.5, .5 y eso necesito mutiplicarlo sin considerar el 1er numero quedaria allgo asi 3.5*2.5*1.5*.5 =6.5625 hasta ahora tengo esto alguien me podria ayudar??

#include <iostream>
using namespace std;
float b,d,a=0.5,temp,temp2;
int main (void)
{
cout << "Por favor ingrese un numero par" <<endl<<endl;
cin >> d;
while(d!=a)
{
temp=d-1;
b=temp;
temp=temp*d;
temp2=temp2+temp;
//printf("\n%.4f\n",temp);
d=b;
cout << (b) <<endl;
}
printf("\n%.4f\n",temp2);
system("pause");
return 0;
}
 

malvadomx

Bovino maduro
#2
mas bien seria mientras de que d > 0, porque que tal si el numero es entero, le vas restando de uno en uno, nunca sera igual a 0.5 y nunca se saldra del ciclo, mejor hazlo mientras sea mayor a 0. Por que vas sumando ? se supone que es multiplicar el resultado anterior por el numero que sigue. Ahi ya te di 2 pistas, si quieres corrige eso y ya vemos como te va quedando el codigo, sale ?
 

malvadomx

Bovino maduro
#4
ok amigo, lo que pasa que me confundi, con eso de que que en el programa dice que ingrese un numero par. Pero bueno, entonces la cosa es que estas sumando, osea, mulitiplicas 3.5*2.5 eso lo almacenas en temp2, despues se multiplica 2.5*1.5 y se lo sumas al otro , y asi sucesivamente. Y al final imprimes lo de temp2.. osea, deberias de imprimir el resltado de:
3.5*2.5*1.5*.5
y tu imprimes algo asi:
(4.5*3.5) + (3.5*2.5) + (2.5*1.5) + (1.5 *.5)

porque tu estas incluyen el primer numero, nunca le haces rest al pincipio
 

malvadomx

Bovino maduro
#5
mira, yo haria algo asi:

Código:
    d--;
    temp = d;
    do
    {
        d--;
        temp=temp*d;
    }while(d != 0.5)
    printf("\n%.4f\n",temp);
    system("pause");
    return 0;
no se si jale porque no tengo el compilador, bueno si tengo el gcc, pero no lo he tratado de calar
 
#6
ok amigo, lo que pasa que me confundi, con eso de que que en el programa dice que ingrese un numero par. Pero bueno, entonces la cosa es que estas sumando, osea, mulitiplicas 3.5*2.5 eso lo almacenas en temp2, despues se multiplica 2.5*1.5 y se lo sumas al otro , y asi sucesivamente. Y al final imprimes lo de temp2.. osea, deberias de imprimir el resltado de:
3.5*2.5*1.5*.5
y tu imprimes algo asi:
(4.5*3.5) + (3.5*2.5) + (2.5*1.5) + (1.5 *.5)

porque tu estas incluyen el primer numero, nunca le haces rest al pincipio
mira, yo haria algo asi:

Código:
    d--;
    temp = d;
    do
    {
        d--;
        temp=temp*d;
    }while(d != 0.5)
    printf("\n%.4f\n",temp);
    system("pause");
    return 0;
no se si jale porque no tengo el compilador, bueno si tengo el gcc, pero no lo he tratado de calar

GRACIAS AMIGO SI FUNCIONO
 
Arriba