Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ;c1v!c en 1 Julio 2011, 16:58 pm



Título: ayuda funciones!
Publicado por: ;c1v!c en 1 Julio 2011, 16:58 pm
Alguien me ayuda con el codigo, por q no me anda el if nose por que!!!  >:(
Estoy haciendo funciones pero primero necesito q funcione esta parte para seguir!
Gracias!
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4.  
  5.    void Listado(char palabra[6], float n1,int n2);
  6.  
  7. int main()
  8.    {  
  9.        int n2;
  10.        float n1;
  11.        char prod3[6]="prod3";
  12.        char prod2[6]="prod2";
  13.        char prod1[6]="prod1";
  14.        char palabra[6];        
  15.        printf("Ingrese nombre del producto:");
  16.        fgets(palabra,6,stdin);
  17.        printf("Ingrese precio unitario:");
  18.        scanf("%f",&n1);
  19.        printf("Ingrese cantidad necesitada:");
  20.        scanf("%d",&n2);
  21.  
  22.        if(palabra==prod1)
  23.        {printf("%s\n",prod1);}
  24.        else if(pala == prod2)
  25.        {printf("%s\n",prod2);}
  26.        else if(pala == prod3)
  27.        {printf("%s\n",prod3);}
  28.        else
  29.        {printf("negative\n");}
  30.  
  31.  
  32.  
  33.        printf("\t| Producto: | Cantidad: | P.unitario | Descuento: | Subtotal: |\n");
  34.        printf("\t| %s     | %d      | %0.2f       |    |   |\n",palabra,n2,n1);
  35.  
  36.  
  37.    }
  38.  
  39.  


Título: Re: ayuda funciones!
Publicado por: Valkyr en 1 Julio 2011, 17:13 pm
Código
  1. if(palabra==prod1)
  2.        {printf("%s\n",prod1);}
  3.        else if(pala == prod2)
  4.        {printf("%s\n",prod2);}
  5.        else if(pala == prod3)
  6.        {printf("%s\n",prod3);}
  7.        else
  8.        {printf("negative\n");}

Pues en primer lugar, no debería ser palabra en lugar de pala? en segundo lugar, si estás en C las comparaciones de cadenas se deben hacer mediante strcmp. Si estás en linux consulta esa función desde la consola con el comando man strcmp, si no aquí tienes una descripción:

http://www.cplusplus.com/reference/clibrary/cstring/strcmp/

Saludos.


Título: Re: ayuda funciones!
Publicado por: Dark Invader en 1 Julio 2011, 18:59 pm
Tambien podrias emular a la funcion strcmp con punteros,asi te valdria tanto para windows como para linux creo  :xD Si quieres avisame y te paso el code que he hecho para ver si te sirve.

Salu2


Título: Re: ayuda funciones!
Publicado por: ;c1v!c en 1 Julio 2011, 20:28 pm
lo solucione de la siguiente manera, esta bien no?
de funcionar funcion! :D
Código
  1. if(strcmp(palabra,prod1)==0)
  2.        {printf("%s\n",prod1);}
  3.        else if(strcmp(palabra,prod2)==0)
  4.        {printf("%s\n",prod2);}
  5.        else if(strcmp(palabra,prod3)==0)
  6.        {printf("%s\n",prod3);}
  7.        else
  8.        {printf("negative\n");}
  9.