Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/04/2016, 16:55
Avatar de YamboKalinka
YamboKalinka
 
Fecha de Ingreso: abril-2016
Mensajes: 3
Antigüedad: 8 años, 1 mes
Puntos: 0
Hola Soy nuevo el foro y aprendiendo C, me ha surgido una duda

Hola foro, estoy aprendiendo C un libro antiguo que tenía en casa y que por fín he decidido ponerme con el. Está un poco desfasado es de 1992, pero imagino que no está demás aprender con el. Voy por el tema 5 y bueno me está costando un poquito. Estoy con while y me gustaría preguntar al foro si alguien podría ayudarme si no es mucho pedir claro.
El ejercicio debe solicitar una nueva cantidad para repetir el proceso y cuando se ponga 0 el programa se cierre. Es una modificación de este que es un ejercicio anterior.
[JSFIDDLE="base"]
#include<stdio.h>
#include<stdlib.h>
/* Este programa suma todos los números desde 1 hasta el numero TOPE introducido */
main()
{
int cont, suma;
int tope;

cont = 0;
suma = 0;

printf("Introduzca el numero tope que quiere que se sume\n");
scanf("%d", &tope);
while (cont++ < tope)
suma = suma + cont;

printf("suma = %d\n", suma);
printf("Pulse una tecla para cerrar el programa.\n");
system("pause>nul");

}[/JSFIDDLE]

yo le hago esta modificación que es parecida a un ejercicio del tema que estoy estudiando pero no funciona correctamente, no suma los numeros desde 1 hasta el numero introducido en tope, por ejemplo si pongo tope 5, debería sumar 1+2+3+4+5= 15 y volverme a pedir otro numero, pero no hace la suma y no entiendo. Este es mi programa:
[JSFIDDLE="duda"]
#include<stdio.h>
#include<stdlib.h>

main()
{
int cont, suma;
int tope;

cont = 0;
suma = 0;

printf("Introduzca el numero tope que quiere que se sume\n");
scanf("%d", &tope);
while (cont++ < tope)
{
suma = suma + cont;
printf("suma = %d\n", suma);
printf("Vuelve a introducir un numero\n");
scanf("%d", &tope);
}
printf("Pulse una tecla para cerrar el programa.\n");
system("pause>nul");
}[/JSFIDDLE]

Y me estoy liando con este otro programa que si que me funciona que si que me pide repetidas veces el numero hasta que le pongo Cero:
[JSFIDDLE="ejemplo"]
#include<stdio.h>
#include<stdlib.h>
#define SM 60
/* Convierte segundos en minutos y segundos */
main()

{
int seg, min, resto;


printf("Este programa convierte segundos\n");
printf("en minutos y segundos.\n");
printf("Introduzca el numero de segundos.\n");
scanf("%d", &seg);
while (seg > 0)
{

min=seg/SM;
resto= seg%SM;
printf("%d seg son %d min, %d seg.\n", seg, min, resto);
printf("Siguiente?\n");
scanf("%d", &seg);
}
printf("Adios\n");
printf("Pulse una tecla para cerrar el programa.\n");
system("pause>nul");

}[/JSFIDDLE]

Y mi duda es ¿por qué en este sí que el programa pide continuamente que le introduzcas los segundos lo calcula y vuelve a pedir continuamente sin parar hasta que le pones el 0 y el programa duda el del medio de los 3 aquí expuestos no lo hace?

Muchas gracias de antemano a quien lea mi post seguro que daré un poco por culillo.

Gracias de nuevo, ¿alguien podría echarme un cable?
Un saludo

P.D. Espero que me entendais la duda quizás es un poco lioso