| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
cevv
Registrado: 05 Feb 2009 Mensajes: 2 Ubicación: venezuela
| Publicado: 05/02/2009 3:14 pm | | | Título: problemas con el compilador!!!! |
| saludos a todos lo del foro! soy nuevo en este foro (me registré hoy) y acabo de descargar el dev c++ (primera vez que uso el compilador) y tambien apenas me inicio en la programacion (practicamente no se nada al respecto).... pues bien, en el cole las clases son bajo linux y el compilador es uno que llaman "vim" (creo)... en fin, por motivos de practica y debido a que no poseo computadora y me es facil practicar en los ciber bajo windows, descargue este compilador... En fin, metí unos programas que ya probé bajo vim y que me funcionan bien y cuando lo compilo todo sale perfecto, incluso parece trabajar bien, pero cuando debe mostrar los resultados en pantalla se cierra o lo hace tan rapido que yo no lo veo... intente incluso con el comun y simple "hola mundo", lo compilo y todo bien, pero no muestra en pantalla "hola mundo"...
Alguien podria asesorarme al respecto? gracias y saludos. _________________ Lo invisible es eso que no se ve hasta que alguien lo expresa con sencillez. |
| | Volver arriba | |  | polly
Registrado: 19 Jul 2007 Mensajes: 362
| Publicado: 05/02/2009 3:27 pm | | | Título: |
| en el codigo tienes que incluir getchar(), osea
| Código: | #include <stdio.h> #include <stdlib.h>
int main() { printf ("Hola mundo\n"); getchar(); }
|
El getchar() es para que el 'Hola mundo' permanezca en pantalla hasta que teclees algo. Esto solo hace falta en entornos windows porque la pantalla de terminal sale tan rapido que apenas te enteras de que ha salido algo.
S2 _________________ ________________ R.I.P Kurt Cobain SO: Linux Compilador: GCC |
| | Volver arriba | |  | cevv
Registrado: 05 Feb 2009 Mensajes: 2 Ubicación: venezuela
| Publicado: 06/02/2009 8:38 am | | | Título: |
| fijate realice este programa simple: #include <stdio.h> int num, pares, impares, i, cont; float promedio; main() {
pares=0; impares=0; promedio=0; for(i=1;i<=5;i++){
printf("Ingrese un valor:\n"); scanf("%d", &num); if(num%2==0){ pares=pares+num; cont=cont+ 1; } else impares=impares+num;
} promedio=pares/cont; printf("La sumatoria de imppares es:%d", impares); printf("El promedio de pares es:%f", promedio);
}
**************************** lo compilé y todo bien!... pero al momento de presentar en pantalla los resultado no se que pasa que se cierra, o lo hace tan rapido que no lo veo... intenté con lo que me dijiste y tampoco, a no ser que la alla puesto mal... saludos y espero sus respuestas _________________ Lo invisible es eso que no se ve hasta que alguien lo expresa con sencillez. |
| | Volver arriba | |  | | MatZ
Registrado: 23 Sep 2004 Mensajes: 137 Ubicación: Valencia
| Publicado: 09/02/2009 4:10 am | | | Título: |
| Hola, la solución que te ha dicho polly es correcta y funciona, el problema es que tendrás que limpiar el buffer de entrada después de la lectura. Prueba este código a ver si te funciona:
| Código: | #include <stdio.h> #include <stdlib.h>
int num, pares, impares, i, cont; float promedio;
int main() { pares=0; impares=0; promedio=0; for(i=1;i<=5;i++){ printf("Ingrese un valor:\n"); scanf("%d", &num); if(num%2==0){ pares=pares+num; cont=cont+ 1; } else impares=impares+num; } // Limpiamos la entrada int ch; while ((ch = getchar()) != EOF && ch != '\n')
promedio=pares/cont; printf("La sumatoria de imppares es:%d", impares); printf("El promedio de pares es:%f", promedio);
getchar();
return 1; }
|
|
| | Volver arriba | |  | cheroky
Registrado: 22 Sep 2005 Mensajes: 1842 Ubicación: Valladolid (España)
| Publicado: 09/02/2009 6:04 am | | | Título: |
| Solo es para comentar un par de detalles del código.
| Código: | int main() { pares=0; impares=0; promedio=0; /* */ |
La asignación a 0 es redundante ya que es este valor con el que se inicializan las variables con categoría de almacenamiento static, como son las que tienen visibilidad (scope) en toda la unidad o enlazado global (extern).
Es una opinión (muy subjetiva) pero creo que insertar pausas en la código con el objetivo de que la aplicación de consola de turno (caso particular de CMD) no desaparezca esconde un vicio, como es evitar:
1º Iniciar una consola, terminal o shell. 2º Visualizar el promt. (si, ya sabemos que es feo) 3º Teclear el nombre del programa y sacudirle al intro. 4º Sorpresa veo lo que hace y además puedo ejecutarlo repetidas veces sin tener que volver a teclear su nombre (lease histórico)
*EOF* _________________ A good code is just read it, no comment.
-Alan Cox-
ei?+1=0 |
| | Volver arriba | |  | untio
Registrado: 17 Sep 2008 Mensajes: 21
| Publicado: 14/02/2009 5:41 am | | | Título: |
| Hola a todos, Si lo que se necesita es esperar a que el usuario pulse una tecla cualquiera, hay una solución sencilla: system("pause"); Creo que está definida en "stdlib.h", aunque no lo puedo asegurar al 100%. Espero que sea de utilidad. |
| | 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
|
|
| |