Ver Mensaje Individual
  #7 (permalink)  
Antiguo 23/07/2016, 13:56
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 1 mes
Puntos: 10
Respuesta: Necesito orientacion con planteamiento de codigo en C

Aquí va mi solución (si no he entendido mal):
Código C++:
Ver original
  1. #include <stdio.h>
  2.     #include <string.h>
  3.     #define NCABLES 3
  4.  
  5.     int main ()
  6.     {
  7.         char cable[NCABLES][25];
  8.         char combinacion [NCABLES][50];
  9.         int i=0,indice_mayor=0,indice_trabajo,indice_menor=0,comun;
  10.         int mayor=0;
  11.         int menor=0;
  12.         float valor [NCABLES];
  13.  
  14.  
  15.         for (i=0;i <NCABLES;i++)
  16.         {
  17.             printf ("Introduce el color %d: ",i+1);
  18.             scanf ("%s",cable[i]);
  19.         }
  20.         for (i=0;i<NCABLES;i++)
  21.         {
  22.             sprintf (combinacion[i],"el %s y el %s",cable[i], i<2?cable[i+1]:cable[0]);
  23.             printf ("Introduce la resistencia entre %s: ",combinacion [i]);
  24.             scanf ("%f",&valor[i]);
  25.             if (i==0)
  26.             {
  27.                 mayor=valor[i];
  28.                 menor=valor[i];
  29.             }
  30.             if (i>0)
  31.             {
  32.                 if (valor[i]>mayor)
  33.                 {
  34.                     indice_mayor=i;
  35.                     mayor=valor[i];
  36.                 }
  37.                 if (valor[i]<menor)
  38.                 {
  39.                     indice_menor=i;
  40.                     menor=valor[i];
  41.                 }
  42.             }
  43.         }
  44.         indice_trabajo=0;
  45.         for (i=0;i<NCABLES;i++)
  46.         {
  47.             if (indice_trabajo==indice_menor || indice_trabajo==indice_mayor)
  48.             {
  49.                 indice_trabajo++;
  50.             }
  51.         }
  52.         printf ("El condensador va entre %s\n", combinacion[indice_mayor]);
  53.         printf ("La bobina de arranque esta entre %s\n",combinacion[indice_menor]);
  54.         printf ("La bobina de trabajo esta entre %s\n",combinacion[indice_trabajo]);
  55.  
  56.         for (i=0;i <NCABLES;i++){
  57.             if (strstr (combinacion[mayor],cable [i])==NULL){
  58.                 comun=i;
  59.                 break;
  60.             }
  61.         }
  62.         printf ("El comun es el %s. Conecta el neutro en el\n",cable[comun]);
  63.     }

Como dice enrieto, una posible mejora sería verificar que la suma los dos valores menores sea igual al mayor (con alguna tolerancia) para evitar datos erróneos.
Un saludo...ya me dirás si era eso o no me he enterado de la idea
__________________
Mi calculadora en Qt