Ejemplos de referencia de programación C de nivel 3
Se sabe que el archivo de datos IN.DAT contiene 200 números de cuatro dígitos y se llama a la función de lectura readDat () para almacenar estos números en la matriz a. Los candidatos deben preparar una función jsVal(). Su función es: si el número de cada persona de cuatro dígitos es 0 o 2 o 4 o 6 u 8, entonces calcule el número de números cnt que cumplen esta condición y ordénelos. desde el más grande Almacene estos números de cuatro dígitos en la matriz b en orden descendente. Finalmente, la función main() llama a la función de escritura writeDat() para generar el resultado cnt y el cuaternión que satisface las condiciones de la matriz b en OUT.DAT.
Nota: Se entrega parte del programa.
Las matrices a[200], b[200] están definidas en el programa; variable: cnt está definida.
No cambie ningún dato en el archivo de datos IN.DAT ni el contenido de la función principal main(), la función de lectura readDat y la función de escritura writeDat().
(Debido a que aquí no hay ningún archivo de datos IN.DAT, los lectores copiarán el programa y el programa se compilará pero no se ejecutará)
#include #define MAX 200 int a[MAX], b[MAX], cnt = 0; void jsVal() { int m,j,k,gg,ss,bb,qq,data; for(m=0;m<200;m++) {qq= a[m]/1000; bb=a[m]%1000/100; Ss=a[MAX], cnt = 0. ss=a[m]%100/10; gg=a[m]%10; if(qq%2==0&&bb%2==0&&ss %2= =0&&gg%2==0) { b[cnt] =a[m]; cnt++; } m++; } for(j=0;j for( k=j +1;k if(b[j] { datos=b [k]; b[k]=b[j]; b[j]=datos; } } void readDat() { int i; ARCHIVO *fp; fp = fopen(IN. DAT.DAT, r); for (i=0; i fscanf(fp, %d ,, &a [i]); fclose(fp); } void writeDat () { ARCHIVO *fp; int i; fp = fopen(OUT.DAT, w); fprintf(fp, %d\ n, cnt ); for (i=0; i fprintf(fp, %d\n, b[i]); fclose(fp); } void main() { int i; readDat (); jsVal(); printf (número que satisface la condición = %d\n, cnt); for (i=0 ; i< cnt; i++) printf(%d, b[i]); printf(\n); writeDat(); } El resultado de la operación anterior es: El número que cumple la condición = 4 6662 4602 2668 2264 p> La respuesta correcta debe ser: El número que cumple las condiciones = 6 6662 6604 4602 2842 2668 2664 (Generalmente use software de puntuación para puntuar) Esta pregunta vale 100 puntos. La línea 5 debe ser: 2842, el resultado es incorrecto; La línea 6 debe ser: 2668, el resultado es incorrecto; La línea 7 debe ser: 2264, el resultado es incorrecto; Esta pregunta *** debería generar 7 filas de datos y 1 fila de datos con resultados correctos, un total de 14 puntos. Si el programa no se compila correctamente o no genera un archivo ejecutable, se le otorgarán directamente 0 puntos. Por lo tanto, en las puntuaciones de los exámenes en línea, se asignan proporciones relativamente grandes a 0 puntos y 100 puntos. void jsVal() { int bb[4]; int i, j, k, bandera; p> int bb[4]; int i, j, k, bandera; p> for (i=0; i<200; i++ ) { bb[0] = a[i]/1000; bb[1] = a[i]%1000/100; bb[2] = a[i]%100/10; bb[3] = a[ i]%10; para (j= 0; j<4; j++) { si (bb[j]%2 == 0 ) { bandera = 1; } de lo contrario { p> bandera = 0; romper; } } } si (bandera == 1) { p> b[cnt] = a[i]; cnt++; } p> } para (i =0; i para (j=i+1; j si (b[i] < b[j] ) { k = b[i]; b[i] = b[j]; b[j ] = k; } }