• Compra una licencia de Windows 10/11 (10€) u Office (18€) al mejor precio u Office al mejor precio. Entra en este post con las ofertas
  • ¡Bienvenid@! Recuerda que para comentar en el foro de El Chapuzas Informático necesitas registrar tu cuenta, tardarás menos de 2 minutos y te dará valiosa información además de ayudarte en lo que necesites o pasar un rato agradable con nosotros.

Ayuda no muestra el numero correcto Dev C+++

Registrado
29 May 2015
Mensajes
17
Puntos
0
usando matrices

En una finca tienen N gallinas ponedoras. Realice un programa en C que guarde en una matriz de dimensión 7xN la producción de huevos diarios de cada una de las N gallinas, durante una semana. Además, el programa debe calcular la producción total de las gallinas cada uno de los siete días, y el número de la gallina que puso más huevos por cada día.

tengo problema con esta parte ( el número de la gallina que puso más huevos por cada día.)

tengo bien solo el numero mayor de huevos en el dia, menos el numero de la gallina que pone dicha cantidad de huevos en el dia,

#include "stdio.h"
#include "conio.h"
#include "string.h"
#include "windows.h"
#include "stdlib.h"
#include "time.h"
#include "iostream"
#include "stdlib.h"

main()
{
int i,j,gal,lunes=0,martes=0,miercoles=0,jueves=0,viernes=0,sabado=0,domingo=0;
int mayor=0,menor=0;

printf("PROGRAMA GALLINAS PONEDORAS \n\n");

srand(time(NULL));
printf("cantidad de gallinas \n");
gal=1+rand()%(10);
printf("%d",gal);

int x[7][gal];
printf("\n\n");

srand(time(NULL));
for(i=0;i<=6;i++)
{
for(j=0;j<gal;j++)
{
x[j]=1+rand()%(5);
printf("%d ",x[j]);
}
printf("\n");
}

for(i=0;i<=6;i++)
{
for(j=0;j<gal;j++)
{
if(i==0)
{
lunes=lunes+x[j];
}

if(i==1)
{
martes=martes+x[j];
}

if(i==2)
{
miercoles=miercoles+x[j];
}

if(i==3)
{
jueves=jueves+x[j];
}

if(i==4)
{
viernes=viernes+x[j];
}

if(i==5)
{
sabado=sabado+x[j];
}

if(i==6)
{
domingo=domingo+x[j];
}
}
}
printf("************************************** \n");
printf("| PRODUCCION DE HUEVOS |\n");
printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
printf("| Lunes: %d |\n",lunes);
printf("......................................\n");
printf("| Martes: %d |\n",martes);
printf("......................................\n");
printf("| Miercoles: %d |\n",miercoles);
printf("......................................\n");
printf("| Jueves: %d |\n",jueves);
printf("......................................\n");
printf("| Viernes: %d |\n",viernes);
printf("--------------------------------------\n");
printf("| Sabado: %d |\n",sabado);
printf("......................................\n");
printf("| Domingo: %d |\n",domingo);
printf("......................................\n");

printf("\n\n");
mayor=0;
for(i=0;i<=6;i++)
{
if(i==0)
{
for(j=0;j<gal;j++)
{
if(i==0)
{
mayor=x[j];
menor=x[j];
}
if(x[j]>mayor)
{
mayor=x[j];
}
}
}
}
printf("LUNES: Gallina %d - Huevos: %d \n",j,mayor);
mayor=0;
for(i=0;i<=6;i++)
{
if(i==1)
{
for(j=0;j<gal;j++)
{
if(i==0)
{
mayor=x[j];
menor=x[j];
}
if(x[j]>mayor)
{
mayor=x[j];
}
}
}
}
printf("MARTES: Gallina %d - Huevos: %d \n",j,mayor);
mayor=0;
for(i=0;i<=6;i++)
{
if(i==2)
{
for(j=0;j<gal;j++)
{
if(i==0)
{
mayor=x[j];
menor=x[j];
}
if(x[j]>mayor)
{
mayor=x[j];
}

}
}
}
printf("MIERCOLES: Gallina %d - Huevos: %d \n",j,mayor);
mayor=0;
for(i=0;i<=6;i++)
{
if(i==3)
{
for(j=0;j<gal;j++)
{
if(i==0)
{
mayor=x[j];
menor=x[j];
}
if(x[j]>mayor)
{
mayor=x[j];
}
}
}
}
printf("JUEVES: Gallina %d - Huevos: %d \n",j,mayor);

mayor=0;
for(i=0;i<=6;i++)
{
if(i==4){
for(j=0;j<gal;j++)
{

if(i==0)
{
mayor=x[j];
menor=x[j];
}

if(x[j]>mayor)
{
mayor=x[j];
}

}
}
}
printf("VIERNES: Gallina %d - Huevos: %d \n",j,mayor);
mayor=0;
for(i=0;i<=6;i++)
{
if(i==5)
{
for(j=0;j<gal;j++)
{
if(i==0)
{
mayor=x[j];
menor=x[j];
}
if(x[j]>mayor)
{
mayor=x[j];
}
}
}
}
printf("SABADO: Gallina %d - Huevos: %d \n",j,mayor);
mayor=0;
for(i=0;i<=6;i++)
{
if(i==6)
{
for(j=0;j<gal;j++)
{
if(i==0)
{
mayor=x[j];
menor=x[j];
}
if(x[j]>mayor)
{
mayor=x[j];
}
}
}
}
printf("DOMINGO: Gallina %d - Huevos: %d \n",j,mayor);
}
 
Te lo subo.
 
Si te das cuenta cuando haces el bucle de los dias guardas el valor maximo de huevos producidos, sin embargo no guardas el numero de la gallina en nigun momento, por lo que siempre te va a salir la ultima gallina, ya que es el ultimo valor de i.
Concretamente aqui.

if(x[j]>mayor)
{
mayor=x[j];
}

Debes guardar la j, que corresponde al numero de la gallina en cuestion.

if(x[j]>mayor)
{
mayor=x[j];
gallinaCampeona=j;
}

Pd: intenta darle una vuelta a ese codigo para no tener que escribir 7 veces lo mismo, una vez por cada dia de la semana.
 
Arriba