Red de conocimiento informático - Conocimiento sistemático - Buscando maestros en programación, escriba en lenguaje C para generar diez divisiones dentro de diez. Los números se generan aleatoriamente y deben dividirse en números enteros. Cada pregunta obtendrá diez puntos si es correcta y cero puntos si es incorrecta.

Buscando maestros en programación, escriba en lenguaje C para generar diez divisiones dentro de diez. Los números se generan aleatoriamente y deben dividirse en números enteros. Cada pregunta obtendrá diez puntos si es correcta y cero puntos si es incorrecta.

Al verificar, encontré que el código anterior completó la división entera de 1 ~ 10

No hay 0,

Puedes agregarlo en la inicialización. lugar: (entonces es 38 )

for (int i=0; ilt; 11; i )

{

char temp[20];

sprintf(temp, "Por favor opere 0÷d = ", i

strcpy(atc[i 27].ecuación,

atc); [i 27].cque = '0';

}

Si desea eliminar la operación de 10, entonces hay 34, por lo que no es necesario modificarla. El método ya es obvio

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

Si piensas en generar números aleatorios del 1 al 9 para esta pregunta, entonces... entonces estás en la trampa

Camaradas a quienes les gusta pensar, ¿pueden ¿Alguien piensa en el mejor algoritmo? Lo único que se me ocurre es lo siguiente

Si tienes uno mejor y más conciso, recuerda decírmelo para que podamos comunicarnos

/** ********************** ****************************\

* El lenguaje C está escrito para generar diez divisiones dentro de diez,

* Los números se generan aleatoriamente y deben ser divisibles,

* y cada pregunta vale diez puntos por respuestas correctas, cero puntos por respuestas incorrectas y puntuaciones estadísticas

*

* Descripción

* 2 Cuente aleatoriamente rand()27 para seleccionar la fórmula de cálculo para lograr uniformidad

* 2 De lo contrario, la probabilidad de 1÷1 es la más alta

\********** ************* ************************/

#includelt;stdlib.hgt;

#includelt;stdio .hgt;

#includelt;string.hgt;

#includelt;conio.hgt;

estructura Fórmula

{

char ecuación[20]; //Ecuación de almacenamiento

char cque; //Resultado de la ecuación

};

p>

inicialización nula(Fórmula *);

void main()

{

int j=0; > char tmp=0; //Registro de entrada

int score=0; //Puntuaciones estadísticas

struct Fórmula atc[28];

inicialización(atc) ); //Inicialización, ¿no lo entiendes?

printf("Por favor, practica la operación de división con cuidado (porque es fácil de usar getch, ingresa 0 directamente para el resultado 10)\n\n " );

para

(int i=0; ilt; 10; i )

{

//Obtener la expresión aleatoria

j=rand()27;

printf("s", atc[j].equation);

tmp=getch();

//Aquí uso getch para hacer eco y reemplazarlo con 0 10 es para mejorar la eficiencia de la depuración

if ( tmp == '0' )

{

printf("10");

}

else

{

printf("c", tmp

}

); //Verificar operación

if ( tmp == atc[j].cque )

{

score =10;

printf ("\tCorrect\n");

}

else

{

printf("\tError\n" );

}

}

//Resultados de salida

printf("\n");

printf ("\nTu puntuación: d\n", puntuación);

}

//Si utilizas el método de generar números aleatorios del 1 al 9, puedes ver 27 formas En este caso,

//1÷1 tendrá la mayor probabilidad de aparecer, y se debe escribir una función para verificar que el resultado sea un número entero

inicialización nula (Fórmula * atc)

{

strcpy(atc[0].equation, "Por favor calcule 10÷10 = ");

atc[0].cque = '1';

strcpy(atc[1].equation, "Calcule 10÷5 = ");

atc[1].cque = '2'; p>

strcpy(atc[2].equation, "Calcule 10÷2 = ");

atc[2].cque = '5'; (atc[3] .equation, "Por favor calcule 10÷1 = ");

atc[3].cque = '0'; ecuación, "Por favor calcule 9÷9 = ");

atc[4].cque = '1';

strcpy(atc[5].ecuación, "Por favor opere 9 ÷3 = ") ;

atc[5].cque = '3';

strcpy(atc[6].equation, "Por favor opere 9÷1 = ");

atc[6].cque =

'9';

strcpy(atc[7].equation, "Calcule 8÷8 = ");

atc[7].cque = '1'; p> p>

strcpy(atc[8].equation, "Calcule 8÷4 = "

atc[8].cque = '2'; > strcpy (atc[9].equation, "Por favor opere 8÷2 = ");

atc[9].cque = '4'; ]. ecuación, "Por favor calcule 8÷1 = ");

atc[10].cque = '8'; calcular 7 ÷7 = ");

atc[11].cque = '1';

strcpy(atc[12].equation, "Por favor calcular 7÷1 = "

atc[12].cque = '7';

strcpy(atc[13].equation, "Calcule 6÷6 = ");

atc[13].cque = '1';

strcpy(atc[14].equation, "Calcule 6÷3 = "); ]. cque = '2';

strcpy(atc[15].equation, " Calcule 6÷2 = "); ';

strcpy(atc[16].equation, "Calcule 6÷1 = "

atc[16].cque = '6';

strcpy(atc[17].equation, "Por favor calcule 5÷5 ​​= "

atc[17].cque = '1'; (atc[18 ].equation," calcule 5÷1 = ");

atc[18].cque = '5';

strcpy(atc[19]. ecuación", por favor Operación 4÷4 = ");

atc[19].cque = '1';

strcpy(atc[20].equation, " Por favor opere 4 ÷2 = " );

atc[20].cque = '2';

strcpy(atc[21].equation, "Por favor opere 4÷1 = ");

atc[21].cque = '4';

strcpy(atc[22].equation, "Por favor calcule 3÷3 = "); > atc[22 ].cque = '1';

strcpy(atc[23].equation, "Por favor calcule 3÷1 = "); cque = '3 ';

strcpy(atc[24]

.equation, "Calcule 2÷2 = ");

atc[24].cque = '1';

strcpy(atc[25].equation, "Calcule 2÷1 = ");

atc[25].cque = '2';

strcpy(atc[26].equation, "Por favor calcule 1÷1 = ") ;

atc[26].cque = '1';

}