• Lunes 29 de Abril de 2024, 00:57

Autor Tema:  Problema Para Mostrar La Diferencia  (Leído 998 veces)

cazadorite

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Problema Para Mostrar La Diferencia
« en: Miércoles 5 de Diciembre de 2007, 00:05 »
0
wenas gente para mostrar lo que dice el ejercicio la (diferencia) hice si el stock real es mayor al stock minimo se restara asi obtengo lo que le falta para llegar al minimo pero no esta del todo bien si en cambio mi cantidad ya es menor al tope como muestro lo que le falta para llegar a ese. espero ayuda.

ejercicio

una fabrica de calzado elabora 10 modelos diferentes de zapatos en los numeros 34 al 45. en un momento dado esta fabrica desea conocer, para cada modelo, los numeros de zapatos cuyo stock esta por debajo del stock minimo que tiene fijado la fabrica.
para obtener esta informacion se han preparado 2 lotes, 1er lote con el stock minimo de cada modelo y numero de calzado.son 120 tarjetas. cada una de las cuales tiene.

modelo( 1 a 10)
numero de calzado (un numero entre 34 y 45)
stock minimo (una cantidad entera)

2do lote con la cantidad existente de cada modelo y numero de zapato.y cada tarjeta de informacion tiene:


modelo( 1 a 10)
numero de calzado (de 34 a 45)
cantidad en existencia (nro entero)

finaliza con una tarjeta con modelo !=0

contruya un programa para obtener un listado con todos los modelos y numeros de zapatos cuyo stock real es menor que el stock minimo, indicando ese faltante. informar asi:

modelo numero diferencia
1 37 -10
1 42 -12
Código: Text
  1.  
  2. #include <stdio.h>
  3. #include<conio.h>
  4. #include <string.h>
  5.  
  6. void main (void)
  7. {
  8.   int m,cant,cante,nc,dif;
  9.   int mte[3][3]={0};
  10.   int stmn[3][3]={0};
  11.  
  12.   for(int i=0; i<9; i++)
  13.   {
  14.     printf("modelo (3mx) "); //reduje los valores a validar asi lo hago mas rapido :P
  15.     scanf("%d",&m);
  16.     printf("nro calzado (34 a 36) ");
  17.     scanf("%d",&nc);
  18.     printf("stock minimo  ");
  19.     scanf("%d",&cant);
  20.     stmn[m-1][nc-34]+=cant;
  21.   }
  22.     printf("modelo (3mx) ");
  23.     scanf("%d",&m);
  24.     while(m!=0)
  25.     {
  26.       printf("nro calzado (34 a 36) ");
  27.       scanf("%d",&nc);
  28.       printf("cantidad existente  ");
  29.       scanf("%d",&cante);
  30.  
  31.       mte[m-1][nc-34]+=cante;
  32.  
  33.       printf("modelo (3mx) ");
  34.       scanf("%d",&m);
  35.      }
  36.  
  37.   for(int k=0; k<3; k++)
  38.     {
  39.       for(int j=0; j<3; j++)    // tengo que mostrar para cada modelo los nros zapatos cuyo stock real
  40.       {                          // es menor que el minimo
  41.         if(mte[k][j]>stmn[k][j]) //la  forma que use para obtener la diferencia era si mi cantidad era
  42.                         //mayor resto con el stock minimo
  43.         {                        //pero si en realidad mi stock real es menor al minimo como muestro la diferencia
  44.           dif=mte[k][j]-stmn[k][j];   //espero ayuda gracias
  45.           printf( " modelo  %d nro zapato %d, la diferencia es %d  \n",k+1,j+34,dif);
  46.  
  47.         }
  48.       }
  49.     }
  50. }
  51.  
  52.  

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Problema Para Mostrar La Diferencia
« Respuesta #1 en: Miércoles 5 de Diciembre de 2007, 18:12 »
0
No se si entendi bien el problema, pero si quieres mostrar solamente aquellos modelos cuyo stock es menor al minimo, cambia una condicion:

Código: Text
  1.  
  2. // Esta es la condicion para probar si la existencia es menor al stock minimo,
  3. // como lo tenias, hacias lo contrario, imprimir aquellos cuya existencia era
  4. // mayor al stock minimo, era cosa de invertir la desigualdad
  5. if (mte[k][j] < stmn[k][j])
  6. {
  7.     // Calcula la diferencia (esto ya lo tenias bien, sale en formato negativo,
  8.     // Si deseas que salga en formato positivo, o sea, sin el signo menos
  9.     // Simplemente invierte los operandos, o sea:
  10.     // dif = stmn[k][j] - mte[k][j];
  11.     dif = mte[k][j] - stmn[k][j];
  12.     printf( " modelo  %d nro zapato %d, la diferencia es %d  \n",k+1,j+34,dif);
  13.  
  14. }
  15.  
  16.  

Si no era eso lo que querias, explica mejor el problema.

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================