Ayuda con funciones en C

Iniciado por Reikamoon, 20 Agosto 2013, 04:24 AM

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

Reikamoon

Hola, mi problema es que no entiendo "funciones", me han dejado un programa con suma, resta, multiplicación y división de números complejos utilizando "estructuras" y "funciones", ése no es el problema, al menos el programa ya está hecho con estructuras (lo hice utilizando, además, un switch), lo que no sé, es cómo pasarlo a funciones, ¿me podrían echar una mano?

vangodp

si pones el programa aqui te podemos explicar mejor ;)

vangodp


Reikamoon

Cita de: vangodp en 20 Agosto 2013, 05:52 AM
si pones el programa aqui te podemos explicar mejor ;)

Lo siento, ya lo pongo:

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


struct complejos
{
    float r,i;
};
main()
{
    int i,op;
    float sumar=0,sumai=0;
    printf("\t\t\t\tNumeros Complejos\n\n");
    printf("Elige una opcion:\n");
    printf("1. Suma\n2. Resta\n3. Multiplicacion\n4. Division\n");
    scanf("%d",&op);
    struct complejos c[2];
    switch (op)
    {
        case 1:
               for(i=0;i<2;i++)
               {
                   printf("Dame la parte real del numero %d: ",i+1);
                   scanf("%f",&c.r);
                   printf("Dame la parte imaginaria del numero %d: ",i+1);
                   scanf("%f",&c.i);
               }
               for(i=0;i<2;i++)
               {
                   sumar+=c.r;
                   sumai+=c.i;
               }
               printf("La suma es: %.2f + %.2fi\n",sumar,sumai);
               break;
        case 2:
               for(i=0;i<2;i++)
               {
                   printf("Dame la parte real del numero %d: ",i+1);
                   scanf("%f",&c.r);
                   printf("Dame la parte imaginaria del numero %d: ",i+1);
                   scanf("%f",&c.i);
               }
                   sumar=c[0].r-c[1].r;
                   sumai=c[0].i-c[1].i;
               printf("La resta es: %.2f + %.2fi\n",sumar,sumai);
               break;
        case 3:
               for(i=0;i<2;i++)
               {
                   printf("Dame la parte real del numero %d: ",i+1);
                   scanf("%f",&c.r);
                   printf("Dame la parte imaginaria del numero %d: ",i+1);
                   scanf("%f",&c.i);
               }
                   sumar+=c[0].r*c[1].r-c[0].i*c[1].i;
                   sumai+=c[0].r*c[1].i+c[0].i*c[1].r;
               printf("La multiplicacion es: %.2f + %.2fi\n",sumar,sumai);
               break;
        case 4:
               for(i=0;i<2;i++)
               {
                   printf("Dame la parte real del numero %d: ",i+1);
                   scanf("%f",&c.r);
                   printf("Dame la parte imaginaria del numero %d: ",i+1);
                   scanf("%f",&c.i);
               }
                     sumar+=(c[0].r*c[1].r + c[0].i*c[1].i)/(c[1].r*c[1].r + c[1].i*c[1].i);
                     sumai+=(c[0].i*c[1].r - c[0].r*c[1].i)/(c[1].r*c[1].r + c[1].i*c[1].i);
               printf("La division es: %.2f + %.2fi\n",sumar,sumai);
               break;
        default:
                break;
    }
system("PAUSE");
}


Apenas estoy aprendiendo a programar por lo que tengo algunos errores...

Alien-Z

Crea una función para cada operación:

Código (cpp) [Seleccionar]
double sumar(double a, double b);
double restar(double a, double b);
double multiplicar(double a, double b);
double dividir(double a, double b);


Mete las instrucciones de los bloques CASE en cada función; después lo único que debes hacer es llamarlas desde dichos bloques.

Guíate con: http://c.conclase.net/curso/index.php?cap=003#inicio

Un saludo.