Autor
|
Tema: Mi primer trabajo practico de la facultad (Leído 3,662 veces)
|
clodan
Desconectado
Mensajes: 277
|
Bueno, queria ver que les parecia el codigo antes de que lo entregue la semana que viene... El programa debia calcular los primeros 100 numeros primos, y de ellos, clasificarlos en: * menores a 100, * mayores a 100 y menores a 500, * mayores a 500 y menores a 1000, Aparte, cada numero primo debia ser colocado en un arreglo, uno atras del otro (no se puede usar string.h) HE AQUI EL CODIGO... MARAVILLAOS MORTALES!!! #include <stdio.h> #include <stdlib.h> int func1(int x); int main(int argc, char *argv[]){ int primos[100]; int x=2, y, pos=0, cont=1; while (cont<=100){ y=func1(x); switch (y){ case 1:{ primos[pos]=x; pos=pos+1; if (x<100){ printf("%d)El numero %d es primo menor a 100\n", cont , x ); x=x+1; cont=cont+1; } else if ((x>100) && (x<500)){ printf("%d)El numero %d es primo menor a 500 y mayor a 100\n", cont , x ); x=x+1; cont=cont+1; } else if ((x>500) && (x<1000)){ printf("%d)El numero %d es primo menor a 1000 y mayor a 500\n", cont , x ); x=x+1; cont=cont+1; } else { printf("%d)El numero %d es mayor a 1000", cont , x ); x=x+1; cont=cont+1; } break; } case 0:{ x=x+1; break; } default: { break; } } //end switch } //end while printf("\n\nPresione ENTER para finalizar la operacion\n"); return 0; } int func1(int x){ int y=2; while (x!=y){ if ((x%y)>0){ y=y+1; } else { return 0; } } return 1; }
|
|
« Última modificación: 1 Septiembre 2010, 15:33 pm por clodan »
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Sugerencias: Cambiar los códigos de tipo ... a=a+1, por a++ Que acaso no estas repitiendo código innecesariamente? x=x+1; cont=cont+1;
Eso lo tienes en todos los IF, si lo vas a hacer en cualquier caso entonces sacalo de los IF, que el IF solo contenga el mensaje. En la función func1, yo en tu lugar utilizaría un FOR, e igualaría a 0, en lugar de hacer mayor a 0 Saludos
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
Horricreu
Wiki
Desconectado
Mensajes: 290
¡La verdad os hará libres!
|
Algunas cosas a mejorar: - Deberías usar asignaciones. Es una buena costumbre utilizarlas.
- En las instrucciones sin sentencias no hace falta poner las llaves. Con un punto y coma basta.
Saludos Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
|
|
« Última modificación: 1 Septiembre 2010, 15:51 pm por Horricreu »
|
En línea
|
|
|
|
clodan
Desconectado
Mensajes: 277
|
Sugerencias: Cambiar los códigos de tipo ... a=a+1, por a++ Que acaso no estas repitiendo código innecesariamente? x=x+1; cont=cont+1;
Eso lo tienes en todos los IF, si lo vas a hacer en cualquier caso entonces sacalo de los IF, que el IF solo contenga el mensaje. En la función func1, yo en tu lugar utilizaría un FOR, e igualaría a 0, en lugar de hacer mayor a 0 Saludos la cosa es que si en la func1, en la parte de if ((x%y)>0) si esa parte da mayor a 0, quiere decir qe es primo, o que esta todavia en camino de ser primo... si da = a 0 quiere decir qe no es primo, porqe es divisible por otro numero... entonces lo que vos propones seria, cambiar eso por un igual y que mientras sea = 0 siga haciendo la cuenta??
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Lo que ocurre es que junto a eso recomendaba usar FOR, para hacerlo más legible y compacto , puedes dejarlo así si quieres, puedo pegarte un code pero creo que no es la "gracia" verdad Saludos
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
clodan
Desconectado
Mensajes: 277
|
Lo que ocurre es que junto a eso recomendaba usar FOR, para hacerlo más legible y compacto , puedes dejarlo así si quieres, puedo pegarte un code pero creo que no es la "gracia" verdad Saludos es que en esto de los codes soy ultra principiante, y por ahi vos me tiras FOR o cosas asi y yo pienso que son algo, pero nada qe ver jajaja
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Eso es lo principal, que soluciones tus problemas con los temas que ya has visto en la facultad, sería raro que aprendas sobre el bucle WHILE, te envíen un ejercicio al respecto, y lo entregues con un FOR Saludos
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Las chuletas en el móvil llegan a la facultad
Noticias
|
wolfbcn
|
6
|
3,882
|
9 Marzo 2011, 18:09 pm
por raul338
|
|
|
Primer día de trabajo--[Algún consejo?]--
Foro Libre
|
P01
|
7
|
3,762
|
24 Abril 2013, 23:24 pm
por дٳŦ٭
|
|
|
(Ayuda) Trabajo Practico Computadoras Electronicas
Hardware
|
ariasantiago
|
1
|
2,128
|
27 Noviembre 2015, 08:28 am
por Lurker
|
|
|
(Ayuda) Trabajo Practico Redes
Redes
|
ariasantiago
|
1
|
2,716
|
27 Noviembre 2015, 08:27 am
por Lurker
|
|
|
Duda respecto a un trabajo practico.
Redes
|
r333k
|
1
|
3,351
|
7 Noviembre 2017, 09:21 am
por warcry.
|
|