ayuda funciones!

Iniciado por ;c1v!c, 1 Julio 2011, 16:58 PM

0 Miembros y 1 Visitante están viendo este tema.

;c1v!c

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!

#include <stdio.h>
#include <stdlib.h>


    void Listado(char palabra[6], float n1,int n2);
   
int main()
    {   
        int n2;
        float n1;
        char prod3[6]="prod3";
        char prod2[6]="prod2";
        char prod1[6]="prod1";
        char palabra[6];       
        printf("Ingrese nombre del producto:");
        fgets(palabra,6,stdin);
        printf("Ingrese precio unitario:");
        scanf("%f",&n1);
        printf("Ingrese cantidad necesitada:");
        scanf("%d",&n2);
       
        if(palabra==prod1)
        {printf("%s\n",prod1);}
        else if(pala == prod2)
        {printf("%s\n",prod2);}
        else if(pala == prod3)
        {printf("%s\n",prod3);}
        else
        {printf("negative\n");}
       
       
       
        printf("\t| Producto: | Cantidad: | P.unitario | Descuento: | Subtotal: |\n");
        printf("\t| %s     | %d      | %0.2f       |    |   |\n",palabra,n2,n1);
       
           
    }


Valkyr

if(palabra==prod1)
        {printf("%s\n",prod1);}
        else if(pala == prod2)
        {printf("%s\n",prod2);}
        else if(pala == prod3)
        {printf("%s\n",prod3);}
        else
        {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.

Dark Invader

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

;c1v!c

#3
lo solucione de la siguiente manera, esta bien no?
de funcionar funcion! :D
if(strcmp(palabra,prod1)==0)
        {printf("%s\n",prod1);}
        else if(strcmp(palabra,prod2)==0)
        {printf("%s\n",prod2);}
        else if(strcmp(palabra,prod3)==0)
        {printf("%s\n",prod3);}
        else
        {printf("negative\n");}