elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ingresar 10 enteros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Ingresar 10 enteros  (Leído 9,350 veces)
mili03

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Ingresar 10 enteros
« en: 27 Junio 2010, 22:41 pm »

--------------------------------------------------------------------------------

hola estoy empezando en esto  de la programacion en C me dejaron este programa que lea 10 numeros y haga la sumatoria de los numeros positivos, pero no logro que me ingrese solo los 10 Nº y tambien si ingreso un nomero negativo se termina el programa el cual supuestamente lo deve de ingnorar y seguir sumando los positivos diganme cual es el error Muchas Gracias. esto es lo que llevo.

Código:
# include <stdio.h>

main ()
{
int suma,num;
    int i;
suma=0;

  printf("introduzca 10 numeros:\n");

scanf("%d",&num);

while (num>=0)
{
suma=num+;
scanf("%d",&num );
}

printf("\nLa sumatoria de los numeros positivos es:%d",suma);

}




« Última modificación: 27 Junio 2010, 23:00 pm por Littlehorse » En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: algo semcillo para los master
« Respuesta #1 en: 27 Junio 2010, 22:48 pm »

Tienes muchos errores, empezando por que la función principal main debe ser declarada como:

Código:
int main()

Y con su respectivo return, y no lo tienes.

El control del ciclo está mal, utiliza la variable indice "i" para las 10 iteraciones.

Para saber si es positivo puedes utilizar un IF.


Saludos.


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: algo semcillo para los master
« Respuesta #2 en: 27 Junio 2010, 22:54 pm »

mili03, por favor utiliza las etiquetas GeSHI o code para postear codigo fuente

[code=c]codigo fuente[/code]

[code]codigo fuente[/code]

Recomendacion: leer el siguiente tema

http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html

Con respecto al programa, podrias usar un do-while y verificar con un contador la lectura de los 10 numeros o con un for y usas el iterador como verificador

Y para la suma de los numeros positivos usa un acumulador, podrias hacerlo con un if

Código:
int suma = 0; // acumulador
...
if ( numero_leido >= 0 )
    suma += numero_leido;
...

Salu10.
« Última modificación: 27 Junio 2010, 23:01 pm por nicolas_cof » En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: algo semcillo para los master
« Respuesta #3 en: 27 Junio 2010, 22:56 pm »

Citar
int suma = 0; // acumulador
...
if ( numero_leido < 0 )
    suma += numero_leido;
...

@nicolas_cof, ahí estás acumulando los negativos, no los positivos como el quiere.
Citar
y haga la sumatoria de los numeros positivos
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: algo semcillo para los master
« Respuesta #4 en: 27 Junio 2010, 22:57 pm »

Leo Gutiérrez., si perdon, lo hice apurado en el mismo post y no me di cuenta :P...

Salu10.
En línea

Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: Ingresar 10 enteros
« Respuesta #5 en: 28 Junio 2010, 12:32 pm »

Código
  1. suma=num+;

Esto lo tienes también mal, no sé si nicolas_cof sé refería a esto en su primera respuesta. ¿Qué quieres hacer, una asignación con suma o un postincremento? Para hacer una asignación con suma es así:

Código
  1. suma += num;
  2.  
  3. //Que es equivalente a:
  4.  
  5. suma = suma + num;

Y para hacer un postincremento:

Código
  1. num++

Esto como lo tenías, ¿no te daba errores de compilación?

Saludos :P
« Última modificación: 18 Julio 2010, 18:27 pm por Horricreu » En línea

Mr.Blue


Desconectado Desconectado

Mensajes: 441



Ver Perfil WWW
Re: Ingresar 10 enteros
« Respuesta #6 en: 28 Junio 2010, 21:35 pm »

el while esta mal implementado.

Si el numero es negativo termina el programa y no pregunta por los 9 numeros restantes

if como te dijeron para preguntar y un for
En línea

d4n0n3

Desconectado Desconectado

Mensajes: 53



Ver Perfil
Re: Ingresar 10 enteros
« Respuesta #7 en: 4 Julio 2010, 01:23 am »

Código
  1. # include <stdio.h>
  2.  
  3. int main ()
  4. {
  5.    int suma=0;
  6.    int numero_leido;
  7.  
  8.    printf("introduzca 10 numeros:\n");
  9.  
  10.  
  11.  
  12. for(int i=0; i<10; i++)
  13. {
  14.    scanf("%d",&numero_leido);
  15.    if(numero_leido>=0)
  16.       suma+=numero_leido;
  17. }
  18.  
  19. printf("\nLa sumatoria de los numeros positivos es:%d",suma);
  20.  
  21. return 0;
  22. }

PDD: nunca e programado en C a secas, soi de C++ ;D! esto seria asi?
En línea

Las cadenas de la esclavitud solamente atan las manos: es la mente lo que hace al hombre libre o esclavo.
nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: Ingresar 10 enteros
« Respuesta #8 en: 4 Julio 2010, 02:13 am »

La declaracion de variables dentro del for, te puede traer complicaciones con algunos compiladores, ya que esta practica esta permitida en el estandar C99. Yo te recomendaria para que tengas una mejor portabilidad ( esto depende de con que compiladores te manejes ) hacer las declaracion de las variables al comienzo de la funcion en este caso main()

Supuestamente al dia de hoy, todos los compiladores tendrian que soportar las caracteristicas de este estandar. Por lo tanto no se tendria que tener problemas. :P

Código:
#include <stdio.h>

int main( void )
{
    int suma = 0, numero_leido, i;
    
    printf( "Introduzca 10 numeros:\n" );
    for ( i = 0; i < 10; ++i )
    {
        scanf( "%d", &numero_leido );
        if ( numero_leido >= 0 )
            suma += numero_leido;
    }
    printf( "\nLa sumatoria de los numeros positivos es: %d\n", suma );

    return 0;
}

Salu10.
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Ingresar 10 enteros
« Respuesta #9 en: 4 Julio 2010, 02:46 am »

PDD: nunca e programado en C a secas, soi de C++ ;D! esto seria asi?

Sí, pero compilando así(gcc sólo, no sé los demás).
Código:
 gcc -std=c99 code.c -o code
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Desbordamiento de enteros en PHP 5.x
Noticias
wolfbcn 0 1,932 Último mensaje 29 Abril 2011, 13:47 pm
por wolfbcn
Suma de enteros en C
Programación C/C++
osofer 9 3,949 Último mensaje 15 Agosto 2011, 22:54 pm
por osofer
Una duda concatenando un arreglo de enteros[C]
Programación C/C++
flacc 7 8,833 Último mensaje 16 Julio 2012, 05:55 am
por BlackZeroX
tipos de enteros en C « 1 2 »
Programación C/C++
lucaslopez0000 11 5,831 Último mensaje 20 Diciembre 2012, 02:24 am
por rir3760
Lenguaje C:apuntador a arreglo de enteros y arreglo de apuntadores a enteros.
Programación C/C++
NOB2014 2 2,718 Último mensaje 27 Noviembre 2015, 12:59 pm
por NOB2014
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines