Hola! Alguien me puede echar un cable con este ejercicio? Cuando compilo me salen un monton de errores y me urge porque he de entregarlo mañana!.. El ejercicio dice lo siguiente:
El programa pide valores enteros que se introducen por teclado. La lectura acaba cuando se introduce un 0. Hay que mostrar la suma de todos los valores positivos introducidos.
Gracias de antemano
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
int *numeroIntroducido,*totalSuma = new int(0);
while(*numeroIntroducido != 0)
{
cin >> *numeroIntroducido;
*totalSuma += *numeroIntroducido;
}
cout <<"La suma total es: " << *totalSuma;
}
No se pueden dar soluciones, pero si te corre prisa ahí te lo dejo, leelo y procura entenderlo si no de poco te servirá.
Muchas gracias, pero en definitiva se deja asi? pues al ejecutarlo me sale error
Cita de: overxfl0w13 en 4 Noviembre 2012, 22:05 PM
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
int *numeroIntroducido,*totalSuma = new int(0);
while(*numeroIntroducido != 0)
{
cin >> *numeroIntroducido;
*totalSuma += *numeroIntroducido;
}
cout <<"La suma total es: " << *totalSuma;
}
No se pueden dar soluciones, pero si te corre prisa ahí te lo dejo, leelo y procura entenderlo si no de poco te servirá.
Esto tiene un error grave. numeroIntroducido no se inicializó por lo tanto quien sabe a donde está apuntando y además nunca liberaste la memoria reservada para totalSuma.
EDIT:
En C podrías hacer algo así:
#include <stdio.h>
int main()
{
int num, total = 0;
do{
scanf("%d", &num);
total += num;
} while(num);
printf("Total: %d\n", total);
return 0;
}
Pide la suma de los valores positivos...
#include <stdio.h>
int main()
{
int num, total = 0;
do{
scanf("%d", &num);
if (num>0) total+=num;
} while(num);
printf("Total: %d\n", total);
return 0;
}
@BatchianoISpyxolo gracias por la corrección no me había fijado :silbar:.
en c++ seria asi
#include<iostream>
using namespace std;
int main ()
{
int n, total=0;
do
{
cout<<"ingrese el numero "<<endl;
cin>>n;
total=total+n;
} while (n!=0);
cout<<"el total de lo ingresado es "<<total<<endl;
system("PAUSE");
return 0;
}
muchas gracias duda resuelta
Cita de: naderST en 4 Noviembre 2012, 23:11 PM
Esto tiene un error grave. numeroIntroducido no se inicializó por lo tanto quien sabe a donde está apuntando y además nunca liberaste la memoria reservada para totalSuma.
Toda la razón, fallo mio por prisas.
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
int *numeroIntroducido,*totalSuma = new int(0);
while(*numeroIntroducido != 0)
{
numeroIntroducido = new int();
cin >> *numeroIntroducido;
if(*numeroIntroducido > 0) *totalSuma += *numeroIntroducido;
}
cout <<"La suma total es: " << *totalSuma;
delete totalSuma;
delete numeroIntroducido;
}
Cita de: JuanPio en 4 Noviembre 2012, 22:01 PM
Hola! Alguien me puede echar un cable con este ejercicio?
Citar¿No habíamos quedado en que no se hacen tareas?. Yo no vi colgado ningún código.
¡Ojo!, no planteo que esté mal o bien, sino que el criterio es muy relativo por lo que observo.
Saludos!.