¿Programa C?
La función PT moveR() se llama cada vez. El protón se mueve aleatoriamente una vez y devuelve el valor de posición después del movimiento (tenga en cuenta que el valor devuelto es el valor, no la dirección. Cambiar el valor de las coordenadas en el archivo principal). la función es inútil de).
Debido a que es un movimiento aleatorio uno a la vez, el número de r no puede ser demasiado grande, de lo contrario se ejecutará durante mucho tiempo. Incluso con el mismo valor, los resultados de cada ejecución pueden variar significativamente.
#include
#include
#include
typedef punto de estructura
{
int x;
int y;
}PT;
PT moveR( ); // Cada vez que se llama, se mueve aleatoriamente y devuelve el valor de la coordenada después del movimiento
int main()
{
int r,cnt= 0;
PT p={0,0};
srand(time(NULL));
printf("Ingrese el valor de R: ") ,scanf("%d",&r);
mientras(1)
{
if(p.x*p.x+p.y +p.y ==r*r)
romper;
p=moveR();
cnt++;
}
printf("Fin del nado, *** nadé %d veces \n",cnt);
return 0;
}
PT moveR ()
{<
PT estático p={0,0};
int rn;
rn=rand () %4+1;// Números aleatorios 1~4, que representan arriba, abajo, izquierda y derecha respectivamente
switch(rn)
{
caso 1: printf("Protón moviéndose hacia arriba\n");.p.y++;break;
caso 2:printf("Protón moviéndose hacia abajo\n");p.y--;break;< / p>
caso 3:printf("Protón moviéndose hacia la izquierda \n");p.x--;break;
caso 4:printf("Protón moviéndose hacia la derecha \n" );p.x++ ; break;
}
printf("Coordenadas después del movimiento: (%d, %d)\n\n",p.x,p.y);
return p;
}