DETERMINAR MAYOR O MENOR EN ARREGLO

Iniciado por wazausky, 12 Noviembre 2012, 07:34 AM

0 Miembros y 1 Visitante están viendo este tema.

wazausky

Hola, miren, necesito determinar cual es el modelo que mas se vende (suma por columnas) y cual es el vendedor que mas vende (suma por renglones) y despues necesito mostrar cual es el modelo que mas se vende, por ejemplo:
EL MODELO QUE MAS SE VENDE ES: M5
y de igual forma mostrar el vendedor que mas vende, e.g.:
EL VENDEDOR QUE MAS VENDE ES: Miguel
Como siempre, a quien me ayude muchas gracias :D

#include <stdio.h>
#include <stdlib.h>
/*Ejercicio 5: una agencia de carros tiene 15 modelos de autos y 10 vendeores
se desea conocer que modelo se vende mas, quien es el vendedor que vende mas y
el total de autos que vende la agencia*/
int main(int argc, char *argv[])
{
  int x, y, agencia[10][15], SC, SR, TA;
  char vendedor[10][40]={{"Ruben"},{"Ivonne"},{"Jesus"},
  {"Nayelli"},{"Miguel"},{"Angel"},{"Carlos"},{"Marco"},{"Lupe"},
  {"Lupita"}};
  printf("Agencia de carros a ver si ahorra, S.A. de C.V.\n\n");
  printf("\t\tM1\tM2\tM3\tM4\tM5\tM6\tM7\tM8\tM9\tM10\tM11\t\tM12\tM13\tM14\tM15\t TOTAL\n\n");
/*SE GENERA LA TABLA*/
  for (x=0; x<10; x++)
  {
      for (y=0; y<15; y++)
      {
          agencia[x][y] = rand()%4;
      }
  }
/*SUMA POR RENGLONES*/
  TA = 0;
  for (x=0; x<10; x++)
  {
      printf("%s\t\t", vendedor[x]);
      SR = 0;
      for (y=0; y<15; y++)
      {
          printf("%i\t", agencia[x][y]);
          SR = SR + agencia[x][y];
      }
      TA = TA + SR;
      printf("  %i\n\n", SR);
  }
/*SUMA POR COLUMNAS*/
  printf("TOTAL\t\t");
  for (y=0; y<15; y++)
  {
      SC = 0;
      for (x=0; x<10; x++)
      {
          SC = SC + agencia[x][y];
      }
      printf("%i\t", SC);
  }
  printf("\n\nEL TOTAL DE AUTOS VENDIDOS ES: %i\n\n", TA);
  system("PAUSE");
  return 0;
}

C_1^N

Hola wazausky! Para saber el vendedor que mas autos ha vendido simplemente podes ir almecenando el total del vendedor que mas ha vendido hasta el momento, usas una variable inicializada en 0 y con el total de cada vendedor vas comparando el anterior resultado si es mayor guardas el nombre del vendedor en un array(o con el indice de las filas de la matriz vendedor) sino pasa al siguiente. Para el modelo mas vendido lo podrias hacer usando el subindice de las columnas y mediante comparaciones de los resutados de modelos mas vendidos, pero guardar la posicion de la columna, al finalizar ese subindice tendra el valor de la columna con el modelo mas vendido. Para mostrarlo solo haces printf("Modelo M%d\n", i);

Saludos!
La gestión manual de bloques de memoria en C es como hacer malabarismos con pastillas de jabón en la ducha de la prisión: todo diversión hasta que cometes un fallo

leosansan

#2
CitarFíjate en  srand(time(0) y el uso de la librería time, para que no salgan siempre los mismos valores. Por lo demás quedaría algo así:
Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

/*Ejercicio 5: una agencia de carros tiene 15 modelos de autos y 10 vendeores
se desea conocer que modelo se vende mas, quien es el vendedor que vende mas y
el total de autos que vende la agencia*/
int main(int argc, char *argv[])
{
   int x, y, agencia[10][15], SC, SR, TA,modelo=0,modelo1=0,Vendedor;
   char vendedor[10][40]={{"Ruben"},{"Ivonne"},{"Jesus"},
   {"Nayelli"},{"Miguel"},{"Angel"},{"Carlos"},{"Marco"},{"Lupe"},
   {"Lupita"}};
   printf("Agencia de carros a ver si ahorra, S.A. de C.V.\n\n");
   printf("\tM1  M2  M3  M4  M5  M6  M7  M8  M9  M10  M11  M12  M13  M14  M15 TOTAL\n\n");
   srand(time(0));
   /*SE GENERA LA TABLA*/
   for (x=0; x<10; x++)
       {
           for (y=0; y<15; y++)
               {
               agencia[x][y] = rand()%4;
           }
       }
   /*SUMA POR RENGLONES*/
   TA = 0;
   for (x=0; x<10; x++)
       {
           printf("%s\t ", vendedor[x]);
           SR = 0;
           for (y=0; y<15; y++)
               {
                   printf("%d   ", agencia[x][y]);
                   SR = SR + agencia[x][y];
               }if (SR>modelo) {modelo=SR;Vendedor=x;}
     TA = TA + SR;
     printf("  %i\n\n", SR);
 }
   /*SUMA POR COLUMNAS*/
   printf("TOTAL\t");
   modelo=0;
   for (y=0; y<15; y++)
       {
           SC = 0;
           for (x=0; x<10; x++)
               {
                   SC = SC + agencia[x][y];
               }if (SC>modelo) {modelo=SC;modelo1=y;}
           printf("%d  ", SC);
       }
   printf("\n\nEL MODELO MAS VENDIDOS ES: M%d\n\n", modelo1+1);
   printf("\n\nEL MEJOR VENDEDOR ES: %s\n\n", vendedor[Vendedor]);
   system("PAUSE");
   return 0;
}

Saludos!.