Programación General > C/C++
Numeros perfectos
Aprendiz21Sam:
Con lo ultimo que dijiste, el 4º no lo calcula porque estas utilizando variables de tipo "int". Este tipo de variables no llega a números tan altos.
Con respecto a esa línea de código...
--- Código: C ---if(N%2==0 && es_perfecto(N))
Esto quiere decir que, Si "N" es par, y perfecto, haremos lo que hay dentro. En C no existe el tipo "Booleano" pero utiliza para ello los de tipo "int". Si es "0" falso y en cualquier otro caso verdadero. Puedes consultarlo en algún manual pero creo recordar que era así. Bueno y esa línea de código es fundamental porque si no nunca veríamos los números perfectos que van saliendo.
SkullFlower:
mira ya hice el programa de los numeros primos modificando unas cuantas cosas del que pusiste para numeros perfectos :P
--- Código: C ---#include<stdio.h>int primo(int Y_);main(){ int X; int Y; int Z = 0; printf("Cuantos numeros primos desea calcular: "); scanf("%d", &X); for(Y = 1; Z != X; Y++){ if(primo(Y)){ printf("[%d] ", Y); Z++; } } while(getchar()!='n'); getchar(); return 0;}int primo(int Y_){ int X_; int suma = 0; for(X_ = 1; X_ <= Y_; X_++){ if(Y_ % X_ == 0){ suma++; } } if(suma == 2){ return 1; } return 0;}
y pues ya seria todo, Gracias por la ayuda ^_^
Aprendiz21Sam:
Muy bien, me encanta como has hecho el paso de parámetros además de que ahora si que le has puesto un nombre de variable distinto a la función. El código esta bastante bien estructurado. Yo lo único que le añadiría, pero no solo a éste sino a todos son los comentarios. Puedes hacerlos de dos tipos:
Comentarios de línea: Estos los pones para las líneas que no se entiendan mucho a simple vista. Explicas que hace.
Comentarios estructurados: Por ejemplo. /*Librerías de C*/ Y debajo pones las librerías que vayas a usar. Luego /*Cabecera de las funciones*/, etc. Esto es lo que se llama esqueleto de un programa. Para los ejercicios que tu haces el esqueleto te irá muy bien. De hecho puedes hacerte tu esqueleto y guardarlo en un documento, así cuando empieces un programa nuevo, pegas el esqueleto y empiezas el programa de una forma mas clara.
Buen trabajo.
EDITADO: Una cosa que si le añadiría además al programa es este bucle para evitar un bug.
--- Código: C --- do { printf("nCuantos numeros primos desea calcular: "); scanf("%d", &X); if (X < 0); printf ("nEl número debe ser mayor que cero, vuelva a introducir un número por favor"); } while (X < 0);
De esta forma, si alguien mete un número negativo no se te queda en un bucle infinito.
SkullFlower:
Gracias por el consejo, ya modifique el codigo pero otra cosa.
Como hacer lo mismo pero para cuando alguien introduzca una letra o un simbolo?
Aprendiz21Sam:
Creo que eso no es posible hacer con "scanf" debido a que el tipo de dato "%d" no puede ser una letra, por lo que no puedes evitar que te cuelen un carácter cuando quieran usando la función "scanf". Si alguien con más conocimientos sabe como hacerlo agradecería que lo pusiera pero creo que no se puede.
Navegación
[*] Página Anterior
Ir a la versión completa