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
{ p>
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';
}