Programación de ángulos
1.# incluir & ltstdio.h & gt
# incluir & ltmath.h & gt
void main()
{
Doble a, b, ángulo, c, s;
Printf("Por favor ingrese la longitud de ambos lados y el tamaño del ángulo (datos separados por espacios):\ n");
scanf("%lf %lf %lf ",&one,&b&angle);
if (!(a & gt0 & amp& ampb & gt0 & amp&angle>0 ))
{
Printf("¡La entrada no puede ser negativa o 0!\n ");
Retorno;
}
c=sqrt(a*a+b*b-2*a*b*cos(angle));//Teorema del coseno
s=0.5* a*b* sin(angle); //Fórmula del área
Printf("El tercer lado es %lf, el área es %lf\n ", c, s
} p>
2. La idea es la siguiente: supongamos que 1 puntúa x, 2 puntúa y y 5 puntúa z, entonces x+2y+5z=30000.
Supongamos que x+y+z=k, según el significado de la pregunta, encuentre el valor mínimo de k. El término de transferencia, x=k-y-z, se introduce en la fórmula anterior: k+y+. 4z = 30000, entonces k = 30000-y-4z, obviamente x>=1, y>=1, z>=1 Entonces k-y-z>=1, es decir, k>=1+y+z. usarse para limitar K en la implementación de la programación. Por supuesto, hay otra forma, que es dejar que x, Y, Z, Y, Z comience a contar desde 1 en un bucle y luego encontrar K, pero la eficiencia no es tan alta como esta idea, porque solo hay un bucle de Y, Z, y debido a que requerimos el K más pequeño, tanto Y como Z deberían cambiar de grande a pequeño. Puede comenzar con y = 15000, z = 3750, y luego y y z disminuir en secuencia (deje que z se bucle en el exterior y y en el interior, para que k pueda cambiar lentamente) hasta el primer k & gt = 1+y+ z. Específicamente, el código es el siguiente:
# include & ltstdio.h & gt
void main()
{
int y, z, k ; // Corresponde a y, z, k arriba.
for(z = 3750; z & gt0;z -)
for(y = 15000; y & gt0;y -)
{ p>
k = 30000-y-4 * z;
if(k & gt;=1+y+z)
{
Printf("Número mínimo de monedas: %d\n ", k);
Printf("La distribución específica es %d 1, %d 2, %d 5 \n ", k-y-z, y, z) ;
Regresar;
}
}
}