Programación en C: el problema de la vaca
#includelt; stdio.hgt;
#define Max 20//0 se registra como el primer año (2 vacas), 20 se registra como el vigésimo año
void main()
{
int sum=1, i, año, a[100]={0} //suma del número total del registro, a[] almacenamiento El número de años que sobrevive cada vaca
for(año=0; añolt; =Max; año=año 4)//El número de años aumenta en 4 años
{
//El propósito de este bucle es verificar la edad de cada vaca y realizar una operación de juicio
for(i=sum-1;igt;=0;i--) //Debido a que la matriz comienza desde 0, la suma debe reducirse en uno
{
a[i] =4 //Cada vaca crece 4 años
if(a[i]gt; 15amp ;amp; a[i]lt; 20)//Indica el ganado que murió en este año
sum-=1; es menos uno
}
sum=2*sum; //Regenerar un lote de vacas
}
printf("d \n",sum);
}
En el año 16, solo hay 26 cabezas. En el año 20, debería haber 48 cabezas, no 50 cabezas. El anterior El programa calculó 50 cabezas, lo cual debería ser incorrecto. Por favor revise el algoritmo nuevamente.
La idea es:
Por ejemplo, si hay dos vacas en el primer año, primero indique su edad. ser 4, y luego comprobar si están muertos. Los muertos se restan del total y luego se multiplican por 2, y así sucesivamente.