| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
sergi75

Registrado: 26 Sep 2004 Mensajes: 7
| Publicado: 29/09/2004 1:19 am | | | Título: Multiplicar |
| Trato de hacer un programa que saque la tabla de multiplicar de un número introducido por el teclado. De momento he echo esto y se cierra, le he itentado meter el getchar por mil sitios, y , o se para, o cierra, pero nunca llega a imprimir los resultados. Este es el codigo:
#include <stdio.h>
int main() { int num, res, tab ; printf ("Dime el numero :"); scanf("%i",&num); res = num * tab; for (tab =0; tab >10; tab++) { printf (" %i por %i igual a %i", num , tab ,res); }
} |
| | Volver arriba | |  | yarblek_de_logh

Registrado: 14 Abr 2004 Mensajes: 69
| Publicado: 29/09/2004 9:35 am | | | Título: |
| Veo ahí dos posibles soluciones:
Una de ellas es, en vez de abrir desde el entorno gráfico (supongo que utilizas Windows) es abrir la consola de comandos y ejecutar el programa desde allí.
Para abrirlo, ve al Inicio --> Ejecutar y escribes "cmd" (sin comillas).
Otra forma sería hacer una llamada al sistema al final del código que has escrito para que pause la ejecución y espere una pulsación de una tecla. Puedes hacerlo de esta manera:
No olvides poner la P de pause en mayúscula (a mí, por lo menos; no me lo reconocía en minúscula)
Un saludo:
Yarblek de Logh |
| | Volver arriba | |  | 4DIMENSION

Registrado: 13 Jun 2004 Mensajes: 198
| Publicado: 29/09/2004 9:35 am | | | Título: RE |
| Prueba con esto:
| Código: | #include <stdio.h>
int main(){ int num, res, tab ; printf ("Dime el numero :"); scanf("%i",&num); for (tab =0; tab >10; tab++){ res = num * tab; printf (" %i por %i igual a %i", num , tab ,res); } getchar(); } |
Antes el valor tab no estaba iniciado, y sólo se calculaba una vez. _________________ [img=http://barrapunto.com/pollBooth.pl?section=&qid=350&aid=2] |
| | Volver arriba | |  | | alp

Registrado: 12 Abr 2004 Mensajes: 413
| Publicado: 29/09/2004 11:07 am | | | Título: |
| La condición del bucle está mal: for (tab =0; tab >10; tab++)
Si asignas cero a tab, y compruebas si es mayor que 10, simplemente no entra. Debería ser así: for (tab =0; tab <10; tab++). Pero tiene un problema, calcula la tabla del cero al 9, por lo que el bucle debería ser así:
| Código: | for (tab =0; tab <10; tab++){ res = num * (tab +1); printf (" %i por %i igual a %i", num , tab ,res); } |
o
| Código: | for (tab =1; tab <=10; tab++){ res = num * tab; printf (" %i por %i igual a %i", num , tab ,res); } |
Un saludo. |
| | Volver arriba | |  | sergi75

Registrado: 26 Sep 2004 Mensajes: 7
| Publicado: 29/09/2004 12:08 pm | | | Título: |
| Pues si. Había que hacer ambas cosas, cambiar el < a > e inicar res dentro del bucle. Muchas gracias por vuestra ayuda.  |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |