Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/09/2010, 11:18
logic_tristaN
 
Fecha de Ingreso: septiembre-2010
Mensajes: 16
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: ejercicio de arrays

Código C:
Ver original
  1. /*dos funciones, la primera calcula el total de todas las ventas
  2.  y la segunda calcula el total de ventas de cada vendedor.*/
  3. #include <stdio.h>
  4. #define N_VENDEDORES 18
  5. #define N_PRODUCTOS 10
  6.  
  7. /* Función que muestra el menú del programa y retorna
  8. el número de menú elegido por el usuario */
  9. int mostrarMenu();
  10.  
  11. /* Función que calcula el total de todas las ventas*/
  12. double mostrarTotal(double v[][N_PRODUCTOS]);
  13.  
  14. /* Función que calcula el total de ventas de un vendedor*/
  15. double totalVendedor(double v[][N_PRODUCTOS], int nVendedor);
  16.  
  17. int main(){
  18.     double ventas[N_VENDEDORES][N_PRODUCTOS]={0};
  19.     int resp=mostrarMenu();
  20.     int nvend, nprod;
  21.     double cantidad, cantidad_tmp[N_VENDEDORES][N_PRODUCTOS]={0};  // nueva linea
  22.  
  23.     while(resp!=4){
  24.         switch(resp){
  25.             case 1:
  26.                 printf("Numero de vendedor: ");scanf("%d",&nvend);
  27.                 printf("Numero de producto: ");scanf("%d",&nprod);
  28.                 printf("Cantidad vendida: ");scanf("%lf",&cantidad);
  29.                 ventas[nvend][nprod]=cantidad+cantidad_tmp[nvend][nprod];  //Nuevo linea
  30.                 cantidad_tmp[nvend][nprod] += cantidad;                    //Nueva linea
  31.                 break;
  32.             case 2:
  33.                 printf("Numero de vendedor: ");scanf("%d",&nvend);
  34.                 printf("Ventas total del vendedor %d=%.2lf\n",
  35.                 nvend,totalVendedor(ventas,nvend));
  36.                 break;
  37.             case 3:
  38.                 printf("Total de ventas=%.2lf\n",
  39.                 mostrarTotal(ventas));
  40.                 break;
  41.                 }
  42.             resp=mostrarMenu();
  43.             }
  44.  
  45.     }
  46. int mostrarMenu(){
  47.     int resp;
  48.     printf("\n\n");
  49.     printf("1) Añadir datos\n");
  50.     printf("2) Mostrar total de vendedor\n");
  51.     printf("3) Mostrar total de ventas\n");
  52.     printf("4) Salir\n");
  53.     scanf("%d",&resp);
  54.     return resp;
  55. }
  56.  
  57. double mostrarTotal(double v[][N_PRODUCTOS]){
  58.     double resp=0;
  59.     int i,j;
  60.     for(i=0;i<N_VENDEDORES;i++){
  61.         for(j=0;j<N_PRODUCTOS;j++){
  62.             resp+=v[i][j];
  63.                 }
  64.         }
  65.     return resp;
  66. }
  67.  
  68. double totalVendedor(double v[][N_PRODUCTOS], int nVendedor){
  69.     double resp=0;
  70.     int i;
  71.     for(i=0;i<N_PRODUCTOS;i++){
  72.         resp+=v[nVendedor][i];
  73.         }
  74.     return resp;
  75. }
ver: nueva linea , lo que te pasaba era que modificabas la cantidad pasada ingresada por la nueva ingresada en vez de sumarlas.