UTNianos

Versión completa: Ayuda con este programa no me compila!
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
HOLA! Ante todo gracias por la ayuda. El enunciado me pide realizar un programa que imprima todos los números primos comprendidos entre el 2 y un valor límite que se preguntará al ejecutar el programa. Este es el que tengo pero no me compila el error que me sale es "'esPrimo' was not declared in this scope" AYUDA POR FAVOR

#include <stdio.h>
#include <math.h>
int main() {
int numero, divisor;
int n;
printf("¨Hasta qué número desea conocer los primos?\n");
printf("introduzca el valor: ");
scanf("%d", &n);
for (numero=2; numero<=n; numero++) {
esPrimo=1;
for (divisor=2; divisor<=sqrt(numero); divisor++)
printf("%d\n", numero);
return (0);
}
}
Y no estas declarando "esPrimo" por eso te tira error y es lo que te dice el error
int esPrimo;
Gracias pasa que hacia eso e igual no me compilaba. Ahora si,no se porque, se que es tonta la pregunta pero bueno no me compilaba de ninguna forma

Off-topic:
No hay preguntas boludas; sólo boludos que no se animan a preguntar.
Para la próxima poné el código en el coso este, queda mas lindo xD


#include <stdio.h>
#include <math.h>
int main() {
int numero, divisor;
int n;
printf("¨Hasta qué número desea conocer los primos?\n");
printf("introduzca el valor: ");
scanf("%d", &n);
for (numero=2; numero<=n; numero++) {
esPrimo=1;
for (divisor=2; divisor<=sqrt(numero); divisor++)
printf("%d\n", numero);
return (0);
}
}

que error t tira el compilador?? estas en linux o windows?? En linux creo q tenias q agregar a la linea de comandos "-lm", esto es x la funcion sqrt que si bien declaras math.h dicha funcion no se linkea o algo asi(en su momento lo sabia).. En fin proba con:

gcc prog.c -o prog -lm

Saludos
(11-09-2014 17:23)sentey escribió: [ -> ]Para la próxima poné el código en el coso este, queda mas lindo xD

Y también podes tabular el código de forma que sea más legible.
Puede ayudarte a encontrar errores...



#include <stdio.h>
#include <math.h>
int main() {
int numero, divisor;
int n;
printf("¨Hasta qué número desea conocer los primos?\n");
printf("introduzca el valor: ");
scanf("%d", &n);
for (numero=2; numero<=n; numero++) {
esPrimo=1;
for (divisor=2; divisor<=sqrt(numero); divisor++)
printf("%d\n", numero);
return (0);
}
}



y mientras te sugiero una pequeña optimización: iterá de 2 en 2, por la vereda de los impares...
URLs de referencia