hola a todos. me dedicaré este puente ha practicar un poco con C para luego retomar C++ con una base más firme. a lo largo de este puente iré colgando en el foro de programación una serie de samples sobre algunos programas de C que sé que pueden ayudar a muchos principiantes.
debeís de tener en cuenta que estos programas solo compilarán tal cual si los compilais en un sistema linux (yo utilizo backtrack 5 r2 pero os servirá cualquiera). de todos modos es sencillísimo portarlos a winx así que no hay ningún problema.
bueno, sin más charla empiezo con el primer sample de la serie:
pirámide de números
el objetivo del este programa es que el usuario introduzca una cantidad de filas que debe tener la pirámide. la pirámide debe ser del tipo:
1
1 2
1 2 3
1 2 3 4
...
además, tras dibujar la pirámide se debe preguntar al usuario si desea pintar otra pirámide. en caso negativo salir del programa y en caso afirmativo volber a dibujar otra pirámide.
/* * Pirámide de números * * Autor: tooxic00 * * Fecha: 27 de Abril de 2012 */ #include <stdio.h> int main() { int k, i, j; char opcion; printf("Introduce el número de filas que tendrá la pirámide: "); scanf("%i",&k); getchar(); printf("\n"); for(i=1;i<=k;i++) { for(j=1;j<=i;j++) { printf("%i ",j); } printf("\n"); } printf("\n"); printf("¿Quieres construir otra pirámide?(S/n): "); scanf("%c",&opcion); getchar(); if(opcion=='s' || opcion=='S') { main(); } return 0; }
os adjunto una imágen del programa ejecutandose:
salu2
Editado: El límite del ancho de las imágenes es de 500 pixeles, sobrepasar este límite puede descolocar la web e incumple las Normas de la Comunidad, antes de volver a postear por favor revíselas.| AORV
Os recomiendo que os paseís por aquí:
Si quiereis ver un ejemplo un poco más desarrollado y avanzado pero que se base en el mismo concepto programado en C++ visitar esto: http://www.scenebeta.com/node/21313
Saludos ^-^
Uff
El código está muy bien por ser breve y tal, pero eso de llamar a la función main recursivamente está MUY FEO. Por lo general usar la recursividad conlleva una pérdida de eficiencia. En este caso, si usases el programa muchas veces (dandole muchas veces a que quieres construir otra pirámide) acabará petando la pila, mientras que si usases un simple while no pasaría nada.
Como regla general la función main NUNCA debe ser recursiva ya que ahí es donde ván las inicializaciones y demás. Si vas a hacer recursividad, crea otra función.
Dennis Ritchie. Padre de C y cocreador de UNIX.
R.I.P.
No está mal para estar
No está mal para estar empezando, de todas formas te dejo un código un poco más organizado y facil de leer.
Compila perfectamente en windows, y si no me equivoco debería de hacerlo en Linux así, tal cual, lo he probado en Visual C++ con éxito. He tratado de usar sólo estándar de C, por lo que debería de compilar en casi cualquier compilador.