Ayuda con ejercicio principiante

Iniciado por JuanPio, 4 Noviembre 2012, 22:01 PM

0 Miembros y 1 Visitante están viendo este tema.

JuanPio

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

overxfl0w13

#1
Código (cpp) [Seleccionar]
#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á.
[/url]

JuanPio

Muchas gracias, pero en definitiva se deja asi? pues al ejecutarlo me sale error

naderST

#3
Cita de: overxfl0w13 en  4 Noviembre 2012, 22:05 PM
Código (cpp) [Seleccionar]
#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;
}

BatchianoISpyxolo

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;
}
Puede que desees aprender a programar desde 0: www.espascal.es

naderST

@BatchianoISpyxolo gracias por la corrección no me había fijado :silbar:.

flony

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;
}
si un problema no tiene solucion entonces no es un problema...es algo inevitable

JuanPio


overxfl0w13

#8
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.

Código (cpp) [Seleccionar]
#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;
}
[/url]

leosansan

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!.