Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: JuanPio en 4 Noviembre 2012, 22:01 pm



Título: Ayuda con ejercicio principiante
Publicado por: JuanPio en 4 Noviembre 2012, 22:01 pm
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


Título: Re: Ayuda con ejercicio principiante
Publicado por: overxfl0w13 en 4 Noviembre 2012, 22:05 pm
Código
  1. #include <iostream>
  2. using namespace std;
  3. int main(int argc, char* argv[])
  4. {
  5.    int *numeroIntroducido,*totalSuma = new int(0);
  6.    while(*numeroIntroducido != 0)
  7.    {
  8.        cin >> *numeroIntroducido;
  9.        *totalSuma += *numeroIntroducido;
  10.    }
  11.  
  12.    cout <<"La suma total es: " << *totalSuma;
  13. }
  14.  

No se pueden dar soluciones, pero si te corre prisa ahí te lo dejo, leelo y procura entenderlo si no de poco te servirá.


Título: Re: Ayuda con ejercicio principiante
Publicado por: JuanPio en 4 Noviembre 2012, 22:33 pm
Muchas gracias, pero en definitiva se deja asi? pues al ejecutarlo me sale error


Título: Re: Ayuda con ejercicio principiante
Publicado por: naderST en 4 Noviembre 2012, 23:11 pm
Código
  1. #include <iostream>
  2. using namespace std;
  3. int main(int argc, char* argv[])
  4. {
  5.    int *numeroIntroducido,*totalSuma = new int(0);
  6.    while(*numeroIntroducido != 0)
  7.    {
  8.        cin >> *numeroIntroducido;
  9.        *totalSuma += *numeroIntroducido;
  10.    }
  11.  
  12.    cout <<"La suma total es: " << *totalSuma;
  13. }
  14.  

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í:

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.    int num, total = 0;
  6.  
  7.    do{
  8.        scanf("%d", &num);
  9.        total += num;
  10.    } while(num);
  11.  
  12.    printf("Total: %d\n", total);
  13.  
  14.    return 0;
  15. }
  16.  


Título: Re: Ayuda con ejercicio principiante
Publicado por: BatchianoISpyxolo en 4 Noviembre 2012, 23:45 pm
Pide la suma de los valores positivos...

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.    int num, total = 0;
  6.  
  7.    do{
  8.        scanf("%d", &num);
  9.        if (num>0) total+=num;
  10.    } while(num);
  11.  
  12.    printf("Total: %d\n", total);
  13.  
  14.    return 0;
  15. }


Título: Re: Ayuda con ejercicio principiante
Publicado por: naderST en 4 Noviembre 2012, 23:51 pm
@BatchianoISpyxolo gracias por la corrección no me había fijado :silbar:.


Título: Re: Ayuda con ejercicio principiante
Publicado por: flony en 4 Noviembre 2012, 23:57 pm
en c++ seria asi
Código:
#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;
}


Título: Re: Ayuda con ejercicio principiante
Publicado por: JuanPio en 4 Noviembre 2012, 23:58 pm
muchas gracias duda resuelta


Título: Re: Ayuda con ejercicio principiante
Publicado por: overxfl0w13 en 5 Noviembre 2012, 11:24 am
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
  1. #include <iostream>
  2. using namespace std;
  3. int main(int argc, char* argv[])
  4. {
  5.    int *numeroIntroducido,*totalSuma = new int(0);
  6.    while(*numeroIntroducido != 0)
  7.    {
  8.        numeroIntroducido = new int();
  9.        cin >> *numeroIntroducido;
  10.        if(*numeroIntroducido > 0) *totalSuma += *numeroIntroducido;
  11.    }
  12.  
  13.    cout <<"La suma total es: " << *totalSuma;
  14.    delete totalSuma;
  15.    delete numeroIntroducido;
  16. }
  17.  


Título: Re: Ayuda con ejercicio principiante
Publicado por: leosansan en 5 Noviembre 2012, 13:23 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!.