elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  eliminacion o bajas en C,, ayuda aun tengo duda de como manejarlo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: eliminacion o bajas en C,, ayuda aun tengo duda de como manejarlo  (Leído 1,828 veces)
jysusxtreme

Desconectado Desconectado

Mensajes: 2


Ver Perfil
eliminacion o bajas en C,, ayuda aun tengo duda de como manejarlo
« en: 10 Marzo 2015, 05:04 am »

todos los casos 1 2  4 funcionan pero el caso 3 5 y 6 tengo errores en el caso numero 5 quiero eliminar un elemento pero no se como en el caso numero 3 quiero imprimir cuantas palabras se ingresaron deacuerdo al color asignado si puedes porfavor compilalo gracias y checa mis errores te lo agradeceria

Código
  1. //registro de colores
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5. int main(){
  6. char colores[5][100],buscar[100];
  7. int posicion=0,contador=0,x,y;
  8. int op;
  9. char exit;
  10. do {
  11. printf("1.-Registrar colores:\n");
  12. printf("2.-consulta general\n");
  13. printf("3.-consulta particular\n");
  14. printf("4.-Modificacion\n");
  15. printf("5.-Eliminacion\n");
  16. printf("6.-Salir\n");
  17. scanf("%d",&op);
  18. switch (op)  {
  19. case 1://registro biennnnn
  20. do {
  21. for (x=0;x<5;x++){
  22. printf("registra tus colores :[%d] \n",x+1);
  23. scanf("%s",colores[x]);
  24. contador++;}  
  25. printf ("desea seguir registrando --s-si n-no \n:");
  26. getc (stdin);
  27. scanf ("%c",&exit);
  28. }
  29. while (exit!='n' && contador<5);
  30. break;
  31. case 2://consulta general biennnnnnnnnnnnnn
  32. printf("los colores ingresados son:\n");
  33. for (x=0;x<contador;x++)  {
  34. printf("%s\n",colores[x]);
  35. }
  36. break;
  37.  
  38. case 3://consulta particular  
  39. posicion=-1;
  40.                        printf("consultar color especifico y cuantos hay: ");
  41.                        scanf("%s",buscar);
  42.                        for(x=0;x<contador;x++)
  43.                        {
  44.                         if(strcasecmp(buscar,colores[x])==0)
  45.                         {
  46.                          posicion=x;
  47.                          break;
  48.                         }
  49.                        }
  50.                        if(posicion!=-1)
  51.                        {
  52.                         printf(" color corecto: \n");
  53.                         printf (" existen %d \n",colores[x]);
  54.                        }
  55.                          else
  56.                           printf("El color no existe \n");
  57.             break;
  58.  
  59. case 4://modificaciones biennnnn
  60.               posicion=-1;
  61.                        printf("ingresar color que desea modificar\n: ");
  62.                        scanf("%s",buscar);
  63.                        for(x=0;x<contador;x++)
  64.                        {
  65.                         if(strcasecmp(buscar,colores[x])==0)
  66.                         {
  67.                          posicion=x;
  68.                          break;
  69.                         }
  70.                        }
  71.                        if(posicion!=-1)
  72.                        {
  73.  
  74.                         printf("INGRESE EL COLOR CORRECTO: ");
  75.                         scanf("%s",colores[posicion]);
  76.                        }
  77.                          else
  78.                           printf("el color no existe \n");
  79.                break;
  80.  
  81. case 5://eliminacion o bajas
  82.            posicion=-1;
  83.                       printf("consulta el color para eliminarlo: ");
  84.                       scanf("%s",buscar);
  85.                       for(x=0;x<contador;x++)
  86.                       {
  87.                        if(buscar==colores[x])
  88.                        {
  89.                         posicion=x;
  90.                         break;
  91.                        }
  92.                       }
  93.                       if(posicion!=-1)
  94.                       {
  95.                        contador--;
  96.                         for(x=posicion;x<contador;x++)
  97.                         {
  98.                          printf("%s\n",colores[x]);
  99.                         }
  100.                       }
  101.                         else
  102.                {
  103.                         printf("el color no existe:\n");
  104.                break;
  105.                case 6:
  106.              default: printf("opcion incorecta\n");
  107.              }
  108.        } }
  109.         while(exit!=6);
  110.   return 0;
  111.    }
  112.  

Mod: No escribir en mayúsculas, para que las etiquetas funcionen deben seleccionar el codigo antes de poner la etiqueta o pegar el codigo dentro de la etiqueta


« Última modificación: 10 Marzo 2015, 05:52 am por engel lex » En línea

NOIS

Desconectado Desconectado

Mensajes: 67


Ver Perfil
Re: eliminacion o bajas en C,, ayuda aun tengo duda de como manejarlo
« Respuesta #1 en: 11 Marzo 2015, 16:48 pm »

Para solucionar el caso 3, en la comparación que realizas entre el color buscado y los almacenados en "colores" quita el "break;" del bucle, y suma 1 a un contador por cada validación correcta, luego usas el contador así: "printf(" existen: %d", cont);

Eso te dará la cantidad.

Código
  1. char colores[5][100],buscar[100];
  2. int posicion=0,contador=0,x,y;
  3. int op;
  4. // CONTADOR
  5. int cont = 0;
  6. char exit;
  7.  
Código
  1. case 3://consulta particular  
  2. posicion=-1;
  3.                        printf("consultar color especifico y cuantos hay: ");
  4.                        scanf("%s",buscar);
  5.                        for(x=0;x<contador;x++)
  6.                        {
  7.                             if(strcasecmp(buscar,colores[x])==0)
  8.                             {
  9.                                  cont++;
  10.                                  posicion=x;
  11.                             }
  12.                        }
  13.                        if(posicion!=-1)
  14.                        {
  15.                         printf(" color corecto: \n");
  16.                         printf (" existen %d %s\n",cont, buscar);
  17.                         cont = 0;
  18.                        }
  19.                          else
  20.                           printf("El color no existe \n");
  21.             break;
  22.  
Tras mostrar la cantidad vuelves a poner el contador a 0 para poder volver a usarlo.

El caso 6 es muy sencillo, simplemente utiliza "return 0;" así saldrá del programa.
Código
  1. case 6:
  2.        return 0;
  3.        break;
  4.  

Con el caso 5 no puedo ayudarte, nunca he hecho nada así y menos en C, yo soy de C++.

Espero haberte ayudado.

Saludos!


En línea

NOIS dev7
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
AYUDA -.- ahora no entro más en 4chan (tengo una duda, ayuda por favor)
Foro Libre
Draklit 6 11,708 Último mensaje 15 Octubre 2010, 03:14 am
por Draklit
¡ayuda! tengo una duda respecto hacia como "atacar" puertos
Hacking
zeta12345 1 3,961 Último mensaje 8 Agosto 2014, 02:24 am
por engel lex
Tengo una duda if , while [AYUDA]
Programación C/C++
vidalpet 4 2,835 Último mensaje 26 Septiembre 2015, 21:43 pm
por ivancea96
Portapapeles de windows : manejarlo , configurarlo o substituirlo « 1 2 »
Windows
Esgrimidor 13 9,222 Último mensaje 28 Enero 2017, 18:23 pm
por Randomize
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines