Red de conocimientos sobre prescripción popular - Conocimiento de perdida de peso - ¿Qué hay de malo con las etiquetas amarillas? ¿Por qué el resultado es extraño? ¿Qué pasa con el código?

¿Qué hay de malo con las etiquetas amarillas? ¿Por qué el resultado es extraño? ¿Qué pasa con el código?

Se supone que una etiqueta amarilla significa una advertencia, una advertencia.

Quieres encontrar números primos y números primos entre 2 y 100, ¿verdad? Haz algunas preguntas.

1. En la línea amarilla, escribiste for(j = 2; j lt= m; J), pero el tipo de m es doble. Debes saber que en la computadora, el tipo doble causará errores, es decir, si M es 3, en realidad puede ser 2.99999 o 3.000001. Luego úsalo para comparar el tamaño con J (un número entero). y el bucle de control Algo salió mal. Se recomienda cambiar el tipo de m a int y luego cambiar m=sqrt(i) a m=round(sqrt(i)), donde round es la función de redondeo.

2. En las siguientes dos líneas en amarillo, if(I j = = 0)t = 1 ahí, deben estar anidadas entre llaves, es decir, if(I j = = 0) { t = 1; break;}; de lo contrario, se producirá un resultado extraño, puedes pensar por qué.

3. ¿No hay ningún valor de salida k al final? ¿No hay salida o lo olvidas?

Todo lo demás debería estar bien. Pregúntame si tengo razón.

Código:

# include ltcstdio gt

# include ltmath.h gt

int? principal(){

int? I, j, k=0, t=0, m;

for(I = 2; ilt=100;i){

t = 0;

m = round(sqrt(I));

for(j = 2; j lt= m; j ){

if(ij==0){< / p>

t = 1;

Romper

}

}

if(t==0){

printf("5d ",I);

k;

Si (k5==0)

printf(" \ n ");

}

}

¿Volver? 0;

}