Autor
|
Tema: Ingresar 10 enteros (Leído 9,350 veces)
|
mili03
Desconectado
Mensajes: 4
|
--------------------------------------------------------------------------------
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
Mensajes: 3.069
/^$/
|
Tienes muchos errores, empezando por que la función principal main debe ser declarada como: 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
|
|
|
|
nicolas_cof
Desconectado
Mensajes: 348
Into the Wild
|
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.htmlCon 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 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
Mensajes: 3.069
/^$/
|
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. y haga la sumatoria de los numeros positivos
|
|
|
En línea
|
|
|
|
nicolas_cof
Desconectado
Mensajes: 348
Into the Wild
|
Leo Gutiérrez., si perdon, lo hice apurado en el mismo post y no me di cuenta ... Salu10.
|
|
|
En línea
|
|
|
|
Horricreu
Wiki
Desconectado
Mensajes: 290
¡La verdad os hará libres!
|
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í: suma += num; //Que es equivalente a: suma = suma + num;
Y para hacer un postincremento: num++
Esto como lo tenías, ¿no te daba errores de compilación? Saludos
|
|
« Última modificación: 18 Julio 2010, 18:27 pm por Horricreu »
|
En línea
|
|
|
|
Mr.Blue
|
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
Mensajes: 53
|
# include <stdio.h> int main () { int suma=0; int numero_leido; printf("introduzca 10 numeros:\n"); for(int 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",suma); return 0; }
PDD: nunca e programado en C a secas, soi de C++ ! 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
Mensajes: 348
Into the Wild
|
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. #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
Mensajes: 3.069
/^$/
|
PDD: nunca e programado en C a secas, soi de C++ ! esto seria asi? Sí, pero compilando así(gcc sólo, no sé los demás). gcc -std=c99 code.c -o code
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Desbordamiento de enteros en PHP 5.x
Noticias
|
wolfbcn
|
0
|
1,932
|
29 Abril 2011, 13:47 pm
por wolfbcn
|
|
|
Suma de enteros en C
Programación C/C++
|
osofer
|
9
|
3,949
|
15 Agosto 2011, 22:54 pm
por osofer
|
|
|
Una duda concatenando un arreglo de enteros[C]
Programación C/C++
|
flacc
|
7
|
8,833
|
16 Julio 2012, 05:55 am
por BlackZeroX
|
|
|
tipos de enteros en C
« 1 2 »
Programación C/C++
|
lucaslopez0000
|
11
|
5,831
|
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
|
27 Noviembre 2015, 12:59 pm
por NOB2014
|
|