Nivel C

******La siguiente es información que espero que le resulte útil "Incluyendo conocimientos básicos y ejemplos":

1. Conocimientos básicos

Lenguaje C, revisión del lenguaje C durante 6 meses.

En general, debe tener claro:

1) Hay tres tipos de estructuras de programas: estructura secuencial, estructura de bucle (estructura de tres bucles), estructura de selección (si y cambiar)

2) El programa de lectura comienza desde la entrada principal () y luego lee secuencialmente de arriba a abajo (cuando se encuentra un bucle, haz un bucle y, cuando encuentres una selección, haz una elección).

3) Los datos informáticos se almacenan en la computadora en forma binaria. La ubicación donde se almacenan los datos es su dirección.

4) Bit se refiere al bit de 0 o 1. Un byte es un byte y un byte = 8 bits.

5) Es importante recordar cómo se convierte binario a decimal.

Conceptos probados con frecuencia:

1. El preprocesamiento de compilación no es parte del lenguaje C y ya no es parte del tiempo de ejecución. Un programa compilado en C se llama programa fuente y se almacena en un archivo de texto con valores ASCII.

2. Cada programa en C tiene una y sólo una función principal.

3. Las funciones no se pueden redefinir dentro de una función.

4. El algoritmo is debe tener salida y no puede tener entrada.

5. break se puede utilizar en estructuras de bucle y declaraciones de cambio.

6. El operador de coma tiene el nivel más bajo.

Capítulo 1

1) Examen de identificador de usuario legal:

Los requisitos legales constan de letras, números y guiones bajos. Usar otros elementos es un error.

Y el primero debe ser una letra o guión bajo. La primera es que los números están equivocados.

No se permiten palabras clave como identificadores de usuario. Para confundirlo, If se puede utilizar como identificador de usuario. No es una palabra clave porque la primera letra de If está en mayúscula.

2) La forma legal de los datos reales:

2.333e-1 es legal y los datos son 2.333×10-1.

Método de memoria de examen: debe haber un número antes y después de e, y el número después de e debe ser un número entero...

3) Forma legal de los datos de caracteres:

'1' significa que el carácter ocupa un byte, '1' significa que la cadena ocupa dos bytes (incluido el terminador).

El valor ASCII de '0' es 48, el valor ASCII de 'a' es 97 y el valor ASCII de 'A' es 65.

4) Los números enteros generalmente son de dos bytes, los caracteres son de un byte, la precisión doble generalmente es de cuatro bytes:

El examen generalmente dice que la prueba se realizará en una compilación de 16 bits sistema o uno de 32 bits en el sistema. Cuando esto suceda, no te preocupes y simplemente haz la misma pregunta. Comprenda que los números enteros generalmente son de dos bytes, los caracteres son de un byte y la precisión doble generalmente es de 4 bytes.

5) Examen de los caracteres de escape:

En el programa int a = 0x6d, el número hexadecimal se convierte en la variable a. Tenga en cuenta que aquí debe existir 0x.

En el programa int a = 06d, que está en forma octal.

Entre los caracteres de escape, '\x6d' es legal, 0 no se puede escribir y x está en minúscula.

'\141' es legal, no se puede escribir 0.

'\108' es ilegal porque 8 no puede aparecer.

6) Niveles de prioridad de los símbolos de operaciones aritméticas:

Algunos niveles son de izquierda a derecha y otros de derecha a izquierda.

7) Conversión de tipo forzada:

Debe ser (int)a en lugar de int(a). Tenga en cuenta que debe haber paréntesis en el tipo.

Observa la diferencia entre (int) (a+b) y (int) a+b.

8) Examen de expresiones:

La expresión debe tener un valor.

Expresión de asignación: el valor de la expresión es el valor más a la izquierda, a = b = 5 la expresión es 5 y no se pueden asignar constantes.

Expresiones autocrecientes y autodecrecientes: Supongamos a = 5, ++a (es 6), a ++ (es 5).

Mecanismo operativo: ++a); es Primero agregue 1 al valor de la variable, luego coloque el valor resultante en la variable a y luego use esto

++El valor de la expresión a representa 6, mientras que a++ primero usa el valor de this La expresión representa 5, luego suma 1 al valor de a para representar 6,

y luego colóquelo en la variable a. Después de ++a y a++, si a se usa nuevamente en el siguiente programa, se aparecerá en un 6.

Método de memoria del examen: agregue ++ primero y luego úselo, use ++ primero y luego agréguelo más tarde.

Expresión de coma: prioridad más baja; el valor de la expresión en el lado derecho de la coma.

El valor de la expresión (2, 3, 4) es 4.

9) Prueba sobre operaciones de bits:

Habrá una o dos preguntas de prueba.

Idea general: casi todas las preguntas sobre operaciones de bits deben manejarse de acuerdo con este proceso (primero convertir decimal a binario y luego convertir a decimal).

Ejemplo 1: char a = 6, b;

b = a<<2; El método de cálculo para este tipo de problema es convertir primero el decimal 6 de a a binario. y luego realizar operaciones de bits.

Ejemplo 2: asegúrese de recordar,

Ejemplo 3: cuando los datos no están redondeados, <>Mover una posición; a la derecha significa dividir por 2.

10) El valor de 018 es ilegal. No hay 8 en octal y cada 8 está precedido por 1.

11) El símbolo % requiere un número entero en ambos lados. Es un error si no es un número entero.

12) El redondeo de tres dígitos pierde decimales:

1. int a = 1,6

2. (int)

3.

Capítulo 2

1) Prueba de formato de función printf:

%d corresponde a un número entero; %c corresponde a un carácter %f corresponde a un único; precisión, etc. Modificadores como ancho y alineación izquierda.

%ld corresponde a long int; %lf corresponde a double.

2) Verificación de formato de la función de escaneo scanf:

Tenga en cuenta que la segunda parte de la función es la dirección, como &a, no a;

Scanf ("% d%d%*d%d ",&a,&b,&c); omita el tercer dato de entrada.

3) Prueba de función Putchar, getchar:

char a = getchar() sin parámetros, obtiene los caracteres de entrada del teclado a la variable a.

4) Cómo realizar el intercambio numérico de dos variables xey (requiere memoria)

No puedes poner x=y, y=x, debes usar la variable intermedia t= x; x=y; y=t.

5) Cómo implementar un programa que retenga tres decimales y redondee al cuarto dígito (requiere memorización)

Esto tiene una generalización, tenga en cuenta que x = ((int)x para que sea un decimal. int)x Esto es para eliminar la parte decimal.

Capítulo 3

Nota especial: en c, su valor es distinto de cero cuando es lógicamente verdadero y es cero cuando es lógicamente falso.

1) Expresión relacional:

El valor de la expresión sólo puede ser 1 (indicado como verdadero) o 0 (indicado como falso)

Cuando el valor relacional expresión Cuando la fórmula es verdadera, obtenemos 1. Por ejemplo, 9>8 es verdadero, por lo que el valor de la expresión es 1

2) Expresión lógica:

El valor de la expresión solo puede ser 1 (es decir, verdadero) , o 0 (que significa falso)

La expresión solo puede evaluarse como 1 (que significa falso). Indica falso)

a) *** tiene tres símbolos de operación lógica & & |||

b) ! >&&>|| indica prioridad.

c) Preste atención al fenómeno de cortocircuito.

Los exámenes tienden a ponerlo a prueba más.

d) significa que x es mayor que 0 y menor que 10. 0

3) declaración if

else es la combinación más cercana de if y no else.

4) Expresión condicional:

Expresión 1 ? Expresión 2 : Expresión 3

Tenga en cuenta que cuando no es 0, es el valor de la expresión 2 , Cuando 0 es el valor de la expresión 2.

Memoria de puntos de prueba: primero verdadero y luego falso.

5) Declaración de cambio:

a) Asegúrese de prestar atención a la diferencia entre desconexión y no desconexión. En los dos ejemplos del libro (página 34), no hay ninguna. desconexión. En el caso, siempre que un caso coincida, el resto se ejecutará. Si hay una desconexión, la declaración de cambio se emitirá directamente.

b) el interruptor solo se puede utilizar con pausa, no con continuación.

Capítulo 4

1) Tres tipos de estructuras de bucle:

a) for(); while();

b) Debe haber dos puntos y coma en medio del bucle for, no lo olvides.

c) Al escribir un programa, debes prestar atención al hecho de que el bucle debe tener una condición final, de lo contrario se convertirá en un bucle infinito.

d) El punto y coma en el último while(); del bucle do- while() no se puede perder. (Corrección con cuidado)

2) La diferencia entre romper y continuar

Memoria:

romper: significa interrupción (interrumpir todo el ciclo), así que cuando ver break , saliendo del nivel real del bucle.

Continuar: Significa continuar (continuar la operación del bucle), pero para finalizar el bucle, es decir, las declaraciones restantes en el bucle ya no se ejecutarán, salte al punto de inicio del bucle, luego determine las condiciones del bucle y realice un nuevo ciclo A.

3) Bucles anidados

Hay otro bucle dentro del bucle. Este tipo es más complicado. Debes calcularlo capa por capa, paso a paso y, en general, recuerde estas dos Todas las capas tratan con matrices bidimensionales.

4) while ((c=getchar())! = '\n') es diferente de while (c=getchar() != '\n')

Mira primero ¡La diferencia entre a = 3 ! = 2 y (a=3)! La diferencia entre =2:

(!= el signo tiene un nivel más alto que el signo =, por lo que el primero calcula 3 primero!=2) El valor de la primera a es 1 el valor de la segunda; a es 3.

Instrucciones del examen: Los paréntesis aquí son muy importantes.

Capítulo 5

Función: Es un bloque de programa con ciertas funciones;

1) Parámetros de función y valor de retorno (diagrama esquemático):

main()

{

int a = 5,b=6,c;

c =add(a,b); p>

printf("%d",c);

}

Función de llamada

a, b son parámetros reales

La función completa obtiene un valor, que es el valor de retorno de la

función Agregar.

int agregar (int x, int y)

{

int z;

z=x+y;

return z;

}

La función llamada

x, y son parámetros formales

El valor devuelto por el función Es de tipo entero

z es el resultado del cálculo de esta función de suma, es decir, el valor de retorno de la función regresa al programa principal.

El programa se ejecuta secuencialmente de arriba a abajo. Cuando se encuentra la función agregar, los valores de ayb se pasan a la función de llamada. El programa se interrumpe temporalmente y espera el valor de retorno. Cuando aparezca el valor de retorno, ejecute hacia abajo en secuencia

2) Debe prestar atención a la transferencia de parámetros

La transferencia de valores entre los parámetros reales y los parámetros formales, también como la transferencia entre diferentes direcciones. (

Si pasa un valor, los cambios en los parámetros formales no cambiarán los cambios en los parámetros reales.

Si pasa una dirección, los cambios en los parámetros formales pueden cambiar el cambios en los parámetros reales.

p>

3) Revisión de la declaración de función:

Debe tener: nombre de función, tipo de retorno de función, tipo de parámetro de función.

No necesariamente: nombre del parámetro formal.

Capítulo 6

La esencia de las variables de puntero es guardar direcciones, mientras que las variables ordinarias guardan valores.

En int *p, la diferencia entre *p y p:

*p se puede usar como variable * se usa para obtener el valor dentro de la dirección p en el futuro

p se utiliza como dirección.

La diferencia entre *p++ y (*p)++: muy importante en preguntas de corrección de errores

*p++ significa que la dirección cambiará.

(*p)++ significa que el valor ha cambiado.

Silogismo: (Enfoque del examen)

Nombre del array: Indica la dirección del primer elemento. Usted no puede agregar el nombre de la matriz, es el nombre constante de la dirección. (Hizo la prueba muchas veces)

Nombre de la función: Indica la dirección de entrada de la función.

Nombre de constante de cadena: representa la dirección del primer carácter.

Capítulo 7

1 Conceptos importantes de matrices unidimensionales:

Discute la matriz a[10].

1.a representa el nombre del array, que es la dirección del primer elemento, es decir, la dirección del elemento a[10].

2. a es una constante de dirección, por lo que cualquier asignación en la que aparezca a++ o a=a+2 es incorrecta.

3. a es un nombre de matriz unidimensional, por lo que es un puntero de columna, lo que significa que a+1 salta a una columna.

Discutir un[3][3].

1.a representa el nombre del array, que es la dirección del primer elemento, es decir, la dirección del elemento a[10].

2. a es una constante de dirección, por lo que cualquier asignación en la que aparezca a++ o a=a+2 es incorrecta.

3. a es el nombre de una matriz bidimensional, por lo que es un puntero de fila, lo que significa que a+1 saltará una fila.

4. a[0], a[1], a[2] también son constantes de dirección y no se les pueden asignar valores. Al mismo tiempo, son punteros de columna, a[0]+1. a[1] +1, a[2]+1 salta una columna.

5. Tenga en cuenta que a es diferente de a[0], a[1] y a[2], y sus tipos básicos también son diferentes. La primera es una fila de elementos y las tres últimas son una columna de elementos.

Consejos para usar matrices bidimensionales como temas:

Si hay un tema, como a[3][3]={1,2,3,4,5 ,6, 7,8,9}.

Paso 1: Escríbelos como: primera columna segunda columna tercera columna

a[0]à 1 2 3 -> primera fila

a[1] à 4 5 6 -> segunda línea

a[2]à 7 8 9 -> tercera línea

Paso 2: Esto facilita establecer un tema entre:

*(a[0]+1) Sabemos que el primer elemento de la primera fila retrocede una columna, por lo que aquí está el elemento a[0][1], y también el 1.

*(a[1]+2) Sabemos que este es el primer elemento de la segunda fila que salta dos columnas hacia atrás. Entonces aquí está el elemento a[1][2], entonces 6.

Recuerda siempre: siempre que sea una pregunta sobre arrays bidimensionales, debes escribirla en el formato anterior y luego volver a la pregunta. Esto será más fácil.

La inicialización del array tiene una dimensión y dos dimensiones. No es necesario escribir la primera dimensión, pero sí la segunda de las dos dimensiones.

int a. []={1, 2} Legal. Pero int a[4][]={2, 3, 4} es ilegal.

Puntero de fila en una matriz bidimensional

int a[1][2];

Donde a ahora es un puntero de fila y a+1 salta Gire una fila de elementos de la matriz. Usando punteros (*)p[2]

a[0], a[1] ahora es un puntero de columna, a[0]+1 salta un elemento de la matriz. Úselo con *p[2] matriz de punteros

Y recuerde la regla de la tira:

a[2] se convierte en *(a+2) a[2][3 ] se convierte en * (a+2)[3] que a su vez puede convertirse en *(*(a+2)+3)

¡Esta idea es muy importante!

II.100 Ejemplo

Programa 1

Pregunta: ¿Cuántos números de tres dígitos se pueden formar usando los números de cuatro dígitos 1, 2, 3, y 4? ¿Cuáles son sus dígitos? ¿Son diferentes y no se repiten? ¿Cuantos hay en total?

1. Análisis del programa: Puedes completar centenas y decenas, y los dígitos son 1, 2, 3 y 4 respectivamente. Después de componer todos los arreglos, vaya a

y no cumplirá con las condiciones del arreglo.

2. Código fuente del programa:

#include "stdio.h"

#include "conio.h"

main( )

{

int i,j,k;

printf("\n");

for (i=1 ;i<5;i++) /*El siguiente es un bucle triple**

for (j=1;j<5;j++)

for (k=1;k < 5;k++)

{

if (i!=k&&i!=j&&j!=k) /* Asegúrate de que i, j y k sean diferentes entre sí*/

printf("%d,%d,%d\n",i,j,k);

}

getch();

}

======================================= === = ====================

Procedimiento 2

Tema: Una empresa paga bonificaciones en función de las ganancias. Cuando la ganancia (I) es menor o igual a 100.000 yuanes, se puede retirar el 10% del bono; cuando la ganancia es mayor a 100.000 yuanes y menos de 200.000 yuanes, la porción menor a 100.000. se puede retirar el 10% del yuan, y se puede retirar el 7,5% para la parte superior a 100.000 yuanes entre 200.000 y 400.000 yuanes, se puede retirar el 5% para la parte superior a 200.000 yuanes, entre 400.000 y 600.000 yuanes; /p>

Se puede retirar el 3% para la porción entre 400.000 yuanes y 600.000 yuanes; se puede retirar el 1,5% para la porción entre 600.000 yuanes y 1 millón de yuanes, y más de 600.000 yuanes. Se puede retirar el 1% por importes superiores a 1 millón de RMB. Ingrese la ganancia del mes actual I desde el teclado. Encuentre el bono total a pagar.

1. Análisis del programa: utilice el eje numérico para la división y el posicionamiento. Tenga en cuenta que la definición de bonificación debe definirse como un número entero largo.

2. Código fuente del programa:

#include "stdio.h"

#include "conio.h"

main( )

{

long int i;

int bono1,bonus2,bonus4,bonus6,bonus10,bonus;

scanf(" %ld",&i);

bonus1=100000*0.1;

bonus2=bonus1+100000*0.75;

bonus4=bonus2+200000*0.5;

bonus6=bonus4+200000*0.3;

bonus10=bonus6+400000*0.15;

if(i<=100000)

bono=i*0.1;

más si(i<=200000)

bono=bonus1+(i-100000)*0.075;

más si( i<=400000)

bonus=bonus2+(i-200000)*0.05;

si no(i<=600000)

bonus=bonus4+(i -400000)*0.03;

más si( i<=1000000)

bonificación=bonus6+(i-600000)*0.015;

más

bonificación=bonificación1(i-1000000)*0.01;

printf("bonificación=%d",bonificación);

getch();

}

=================================== ========= ==================

Programa 3

Pregunta: Un número entero, cuando se suma a 100, es un número cuadrado perfecto, y 168 suma otro número cuadrado perfecto.

1. Análisis del programa: para determinar si el número está dentro de 100.000, primero suma el número a 100 y luego eleva al cuadrado, luego suma el número a 268 y luego eleva al cuadrado si el resultado es el cuadrado.

Los resultados son aquellos que cumplen las siguientes condiciones.

Consulte el análisis específico:

2. Código fuente del programa:

#include "math.h"

#include "stdio.h"

#include "conio.h"

main()

{

long int i, x,y,z;

for (i=1;i<100000;i++)

{

x=sqrt(i+100); x=sqrt(i+100); x Es el resultado después de sumar 100, luego redondeado*/

y=sqrt(i+268); /*y es el resultado después de sumar 168, luego redondeado*/

if( x*x==i+100&&y*y==i+268) /*Si el cuadrado de la raíz cuadrada de un número es igual al número, significa que el número es un número cuadrado perfecto*/

printf("\n%ld\n",i);

}

getch();

}

=========================================== ======== =============

Programa 4

Título: Introduzca un determinado año, un determinado mes y un determinado día y determinar qué día es en qué año?

1. Análisis del programa: tomando como ejemplo el 5 de marzo, primero se deben agregar dos meses y luego se deben agregar 5 días para convertirse en el primer día del año.

, es necesario considerar agregar un día extra cuando es año bisiesto y el mes de entrada es mayor a 3.

2. Código fuente del programa:

#include "stdio.h"

#include "conio.h"

main( )

{

int día,mes,año,suma,salto;

printf("/npor favor ingrese año,mes,día\n");

scanf("%d,%d,%d",&year,&month,&day);

switch(month) /* Primero calcula el mes anterior al mes indicado El número total de días*/

{

caso 1: sum=0;break;

caso 2:sum=31;break;

caso 3:sum=59;break;

caso 4:sum=90;break;

caso 5:sum=120;break;

caso 6:sum=151;descanso;

caso 7:sum=181;descanso;

caso 8:sum=212;descanso;

caso 9 :sum=243;descanso;

caso 10:sum=273;descanso;

caso 11:sum=304;descanso;

caso 12 :sum =334;break;

default:printf("error de datos");break;

}

sum=sum+day; el número de días* /

if(year%400==0||(year%4==0&&year%100!=0)) /*Juzga si es un año bisiesto*/

salto=1 ;

else

salto=0

if(leap==1&&month>2) /*Si es un año bisiesto y el mes es mayor que 2, el número total de días debe ser Add one day*/

sum++;

printf("Es el %désimo día.", suma);

getch();

}

====================== ===================== ========================

Programa 5

Título: Ingrese tres números enteros x, y, z, genere estos tres números de pequeño a grande.

1. Análisis del programa: Primero comparamos xey, y si x>y, intercambiamos los valores de xey.

Luego compara x y z e intercambia los valores de x y z si x>z.

2. Código fuente del programa:

#include "stdio.h"

#include "conio.h"

main( )

{

int x,y,z,t;

scanf("%d%d%d",&x ,&y,&z);

if (x>y)

{t=x;x=y;y=t;} /*Intercambiar los valores de x e y*/

if(x>z)

{t=z;z=x;x=t;} /*Intercambiar los valores de x y z*/

if(y>z )

{t=y;y=z;z=t;} /*Intercambiar los valores de z e y**

printf("de pequeño a grande:%d %d %d %d %d\n",x,y,z);

getch();

}

======== ================= ====================== ============ =====

Programa 6

Tema: Utilice * para generar el patrón de la letra C.

1. Análisis del programa: puede escribir la letra C con el signo '*' en el papel y luego usar la rama para generar.

2. Código fuente del programa:

#include "stdio.h"

#include "conio.h"

main( )

{

printf("¡Hola mundo C!\n");

printf(" ****\n");

printf(" *\n");

printf(" *\n");

printf(" ****\n");

printf(" ****\n");

getch();

}

====== ================= =================================== ======

Programa 7

Título: Modo especial de salida, ejecútelo en el entorno c y eche un vistazo, ¡es muy hermoso!

1. Análisis del programa: ****, un total de 256 caracteres. Diferentes personajes tienen diferentes gráficos.

2. Código fuente del programa:

#include "stdio.h"

#include "conio.h"

main( )

{

char a=176,b=219;

printf("%c%c%c.c%c\n",b,a ,a,a,a,b);

printf("%c%c%c%c\n",a,b,a,b,a);

printf("%c%c%c%c\n",a,a,b,a,a);

printf("%c%c%c%c\n",a, b,a,b,a);

printf("%c%c%c%c%c%c\n",b,a,a,a,b);

getch();

}

============================ ======================== ==========

Programa 8

Tema: Salida 9*9 mnemónico.

1. Análisis del programa: considere ramas y columnas, ***9 filas y 9 columnas, i controla las filas y j controla las columnas.

2. Código fuente del programa:

#include "stdio.h"

#include "conio.h"

main( )

{

int i,j,resultado;

printf("\n");

for (i=1;i<10 ;i++)

{

para (j=1;j<10;j++)

{

resultado=i*j ;

printf("%d*%d=%-3d",i,j,result);/* -3d significa alineación a la izquierda, ocupa 3 bits*/

}

printf("\n"); /* Nueva línea después de cada línea*/

}

getch();

}

============================================ = === ================

Programa 9

Título: Solicitud de salida del tablero de ajedrez.

1. Análisis del programa: utilice i para controlar filas, j para controlar columnas y controle la salida de cuadrículas blancas o negras según el cambio de la suma de i+j.

2. Código fuente del programa:

#include "stdio.h"

#include "conio.h"

main( )

{

int i,j;

for(i=0;i<8;i++)

{

for(j=0;j<8;j++)

if((i+j)%2==0)

printf("%c% c",219,219);

else

printf(" ");

printf("\n");

}

getch();

}

======================== ======================================

Programa 10

Título: Imprime las escaleras e imprime dos caritas sonrientes en la parte superior de las escaleras.

1. Análisis del programa: utilice i para controlar las filas, j para controlar las columnas y j para controlar el número de cuadrados negros generados según los cambios en i.

2. Código fuente del programa:

#include "stdio.h"

#include "conio.h"

main( )

{

int i,j;

printf("/1\1\n"); /*Generar dos emoticones.

*/

for(i=1;i<11;i++)

{

for(j=1;j<=i;j++)

printf("%c%c",219,219);

printf("\n");

}

getch( );

}

:. 100 ejemplos de programas c clásicos ===11--20 :.

100 ejemplos de c clásicos programas= ==11--20

Programa 11

Título: Problema clásico: Hay una pareja de conejos A partir del tercer mes después del nacimiento, habrá una pareja de conejos. nacen cada mes. Luego, después del tercer mes de crecimiento del conejo, nacerán un par de conejos cada mes

Si los conejos no mueren, ¿cuál es el número total de conejos cada mes?

1. Análisis del programa: El patrón del conejo es la secuencia 1,1,2,3,5,8,13,21....

2. código:

#include "stdio.h"

#include "conio.h"

main()

{

largo f1,f2;

int i;

f1=f2=1;

for(i=1;i<=20 ;i++)

{

printf("%12ld %12ld",f1,f2);

if(i%2==0) printf( "\n "); /* Salida de control, cuatro por línea*/

f1=f1+f2 /* Suma los primeros dos meses y el tercer mes*/

f2; =f1+f2; /* Suma los primeros dos meses y el tercer mes*/

}

getch();

}

============================================ === == ==============

Programa 12

Pregunta: Determine cuántos números primos hay entre 101 y 200 y genere todos los números primos.

1. Análisis del programa: Determine el número de números primos: use un número para eliminar 2 de sqrt (si puede ser divisible,

significa que el número). no es un número primo. De lo contrario, es un número primo.

2. Código fuente del programa:

#include "stdio.h"

#include "conio.h"

#include "math.h"

main()

{

int m,i,k,h=0, salto=1;

printf("/n");

for(m=101;m<=200;m++)

{

k=sqrt(m +1);

for(i=2;i<=k;i++)

si(m%i==0)<

{

salto=0;

romper;

}

if(salto)

{

printf("%-4d",m);

h++;

if(h%10==0)

printf("/ n");

}

jump=1;

}

printf("/nEl total es %d",h );

getch();

}

======================= = =======================================

Programa 13

Título: Imprime todos los "números de narciso". Un "número narciso" se refiere a un número de tres dígitos en el que cada dígito es un "número narciso". El "número de Narciso" es un número de tres dígitos cuya suma es igual al número mismo. Por ejemplo, 153 es un "número de Narciso" porque 153 = 1 cubo + 5 cubos + 3 cubos. Análisis del programa: utilice un bucle for para controlar entre 100 y 999 números, y cada número se divide en un solo dígito, decenas y centenas

2. p>#include "stdio.h"

#include "conio.h"

main()

{

int i ,j,k,n;

printf("El número de 'flor de agua' es: ");

for(n=100;n<1000 ;n++)

{

i=n/100;/* Descomponer en centenas*/

j=n/10%10;/* Descomponer en decenas*/

k=n%10;/* descomponer en unidades*/

if(i*10j*1k==i*i* i+j*j*j+k* k*k)

printf("%-5d",n);

}

getch() ;

}

==================================== ======== ====================

Programa 14

Tema: Convertir un número entero positivo Descomponerlo en factores primos Por ejemplo: ingrese 90, imprima 90 = 2*3*3*5.

Análisis del programa: para descomponer n en factores, primero debe encontrar el número primo más pequeño k y luego continuar con los siguientes pasos: <. /p>

(1) Si este número primo es exactamente igual a n, el proceso de descomposición finaliza y se imprime.

(2) Si n<>k, pero n puede ser If. k es divisible, imprime el valor de k y divide n por k como el nuevo entero positivo n

Repita el primer paso.

(3) Si n no es divisible por k, use k+1 como valor de k.

Repita el primer paso.

2. Código fuente del programa:

/* zheng int se divide yinshu*/

#include "stdio.h"

#include "conio.h"

main()

{

int n, i;

printf("/npor favor ingrese un número:/n");

scanf("%d",&n);

printf("%d=",n);

for(i=2;i<=n;i++)

mientras(n!=i)

{

si(n%i==0 )

{

printf("%d*",i);

n=n/i;

}

else

break;

}

printf("%d",n);

getch() ;

}

=================================== == ============================

************* ** * ********** Debido al límite de palabras, no se puede proporcionar el texto completo.