/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

no entiendo por que se mae este codigo

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
harry.xd



Registrado: 11 Nov 2007
Mensajes: 2

MensajePublicado: 11/11/2007 7:17 pm
Título: no entiendo por que se mae este codigo

bueno el codigo es un poco largo pero es siempre lo mismo


porfa si peuden verlo y darme una solucion seria bueno





Código:
#include <stdio.h>

#define animales 7
#define alimentos 7

main()
{
      char *lista[animales]= {"mosca", "zorro", "leon", "vaca", "conejo", "raton", "arana"};
      char *aux;
      int i, j, k;
     
     
      printf("\nLista de animales:mosca zorro leon vaca conejo raton arana");
     
      for (i=0;i<animales-1;i++)
      {
          if (lista[i]=="mosca")
          {
           
          if (lista[j]=="arana"||lista[j]=="rana")
          { 
          for(j=i+1,k=j+1;j<animales-1;j++)
          {
               aux = lista[j];
               lista[j] = lista[k];
               lista[k] = aux;
          }
          }                                   
          }
          else if (lista[i]=="rana")
          {                                         
                                                                     
          if (lista[j]=="serpiente" || lista[j]=="aguila" || lista[j]=="culebra" || lista[j]=="mosca")
          {
          for(j=i+1,k=j+1;j<animales-1;j++)
          {
               aux = lista[j];
               lista[j] = lista[k];
               lista[k] = aux;
          }
          }           
          }
          else if (lista [i]=="serpiente")
          {
         
          if (lista[j]=="aguila"||lista[j]=="rana"||lista[j]=="culebra"||lista[j]=="raton"||lista[j]=="aguila"||lista[j]=="leon"||lista[j]=="vaca"||lista[j]=="zorro"||lista[j]=="mangosta")
          {
           for(j=i+1,k=j+1;j<animales-1;j++)
          {
               aux = lista[j];
               lista[j] = lista[k];
               lista[k] = aux;
          }                               
          }
          }
          else if (lista[i]=="culebra")
          {
                                         
          if (lista[j]=="rana"||lista[j]=="raton"||lista[j]=="serpiente"||lista[j]=="aguila"||lista[j]=="leon"||lista[j]=="zorro"||lista[j]=="mangosta")
          {
          for(j=i+1,k=j+1;j<animales-1;j++)
          {
               aux = lista[j];
               lista[j] = lista[k];
               lista[k] = aux;
          }
          }
          }
          else if (lista[i]=="raton")
          {
         
          if (lista[j]=="serpiente"||lista[j]=="culebra"||lista[j]=="aguila"||lista[j]=="zorro"||lista[j]=="mangosta")
          {             
          for(j=i+1,k=j+1;j<animales-1;j++)
          {
               aux = lista[j];
               lista[j] = lista[k];
               lista[k] = aux;
          }
          }
          }
          else if (lista[i]=="arana")
          {
         
          if (lista[j]=="mosca")
          {
           for(j=i+1,k=j+1;j<animales-1;j++)
          {
               aux = lista[j];
               lista[j] = lista[k];
               lista[k] = aux;
               
          }
          }
          }
          else if (lista[i]=="aguila")
          {
         
          if (lista[j]=="rana"||lista[j]=="serpiente"||lista[j]=="culebra"||lista[j]=="raton"||lista[j]=="conejo")
          {
          for(j=i+1,k=j+1;j<animales-1;j++)
          {
               aux = lista[j];
               lista[j] = lista[k];
               lista[k] = aux;
          }
          }
          }
          else if (lista[i]=="leon")
          {
         
          if (lista[j]=="culebra"||lista[j]=="vaca"||lista[j]=="zorro"||lista[j]=="mangosta"||lista[j]=="serpiente"||lista[j]=="cocodrilo")
          {
          for(j=i+1,k=j+1;j<animales-1;j++)
          {
               aux = lista[j];
               lista[j] = lista[k];
               lista[k] = aux;
          }
          }
          }
          else if (lista[j]=="cocodrilo")
          {
         
          if (lista[j]=="leon"||lista[j]=="vaca"||lista[j]=="zorro"||lista[j]=="mangosta")
          {                                                                                                                                                                                                                                                                                                                       
          for(j=i+1,k=j+1;j<animales-1;j++)
          {
               aux = lista[j];
               lista[j] = lista[k];
               lista[k] = aux;
          }
          }
          }
          else if (lista[i]=="vaca")
          {
         
          if (lista[j]=="serpiente"||lista[j]=="leon"||lista[j]=="cocodrilo")
          {
          for(j=i+1,k=j+1;j<animales-1;j++)
          {
               aux = lista[j];
               lista[j] = lista[k];
               lista[k] = aux;
          }
          }
          }
          else if (lista[i]=="conejo")
          {
         
          if (lista[j]=="aguila"||lista[j]=="zorro"||lista[j]=="mangosta")
          {
          for(j=i+1,k=j+1;j<animales-1;j++)
          {
               aux = lista[j];
               lista[j] = lista[k];
               lista[k] = aux;
          }
          }
          }
          else if (lista[i]=="zorro")
          {
         
          if (lista[j]=="culebra"||lista[j]=="raton"||lista[j]=="conejo"||lista[j]=="mangosta"||lista[j]=="serpiente"||lista[j]=="leon"||lista[j]=="cocodrilo")
          {
          for(j=i+1,k=j+1;j<animales-1;j++)
          {
               aux = lista[j];
               lista[j] = lista[k];
               lista[k] = aux;
          }
          }
          }
          else if (lista[i]=="mangosta")
          {
         
          if (lista[j]=="serpiente"||lista[j]=="culebra"||lista[j]=="raton"||lista[j]=="conejo"||lista[j]=="leon"||lista[j]=="cocodrilo"||lista[j]=="zorro")
          {
          for(j=i+1,k=j+1;j<animales-1;j++)
          {
               aux = lista[j];
               lista[j] = lista[k];
               lista[k] = aux;
          }
          }
          }
          }
          printf("\nLista ordenada:");
          for (i=0;i<animales;i++)
              printf(" %s", lista[i]);
         
          getchar();
             
          }                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

Volver arriba
harry.xd



Registrado: 11 Nov 2007
Mensajes: 2

MensajePublicado: 11/11/2007 7:19 pm
Título:

a disculpen no explique lo que supuestamente hace el programa

se supone que al encontrar cierto animal al aldo de otro tire el segundo animal al final de cadena para que no terminen juntos ya q no pueden estarlo


espero que respondan
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3770
Ubicación: Mexico

MensajePublicado: 12/11/2007 6:42 am
Título:

El programa tiene varios errores, revisandolo superficialmente algunos de estos son:

* Si vas a utilizar macros dales nombres en mayusculas como "ANIMALES" y "ALIMENTOS" para asi distinguirlas claramente de las variables.

* Define la funcion main en la forma "int main(void)" o "int main()" e indica al final de esta su valor de retorno con (al menos) la sentencia "return 0;".

* Dentro del programa utilizas la variable "j" como contador sin antes darle explicitamente un valor, esto resulta en la variable con un valor inicial "no definido" o "basura".

* En el lenguaje C no puedes comparar directamente dos cadenas mediante el operador de igualdad (la secuencia "=="). En su lugar debes utilizar la funcion strcmp (prototipo en <string.h>), esta retorna el valor cero si las cadenas son iguales. Por ejemplo la primera comparacion en tu programa debes cambiarla:
Código:
if (lista[i] == "mosca") ...

/* Hay que cambiarla a: */

if (strcmp(lista[i], "mosca") == 0) ...


Tal vez haya otros errores (no lo revise a fondo).

Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com