martes, 11 de septiembre de 2012

Funciones en C

El siguiente programa muestar el uso de las funciones en C asi como las diferencias entgre los valores finales de los parametros.
Del primer modo los valores de A no cambian y se mantienen constantes ejecución tras ejecución:

#include <stdio.h>

int x,y;

int suma (int a, int b);
int resta(int a, int b);
int producto(int a,int b);
float division(int a, int b);

int main(void)
{
    printf("Introduzca los valores de A y B: \nA="); scanf("%d",&x); printf("\nB=");scanf("%d",&y);
    printf("\n\nA+B=%d\n",suma(x,y));
    printf("A-B=%d\n",resta(x,y));
    printf("A*B=%d\n",producto(x,y));
    printf("A/B=%f\n",division(x,y));
    printf("\n\nAl final de todlas las ejecuciones:\n A=%d", x);

    return(0);
}


int suma (int a, int b)
{
    a=a+b;
    return(a);
}
int resta(int a, int b)
{
    a=a-b;
    return(a);
}
int producto(int a,int b)
{
    a=a*b;
    return(a);
}
float division(int a, int b)
{
    float c;
    c=a/b;
    return(c);
}




Del segundo modo los valores de A van cambiando con cada ejecución:

#include <stdio.h>

int x,y;

void suma (int *a, int *b);
void resta(int *a, int *b);
void producto(int *a,int *b);
void division(int *a, int *b);

int main(void)
{
    printf("Introduzca los valores de A y B: \nA="); scanf("%d",&x); printf("\nB=");scanf("%d",&y);
    suma(&x,&y); printf("\n\nA+B=%d\n",x);
    printf("Al final de la ultima ejecucion: A=%d\n\n", x);
    resta(&x,&y); printf("A-B=%d\n",x);
    printf("Al final de la ultima ejecucion: A=%d\n\n", x);
    producto(&x,&y); printf("A*B=%d\n",x);
    printf("Al final de la ultima ejecucion: A=%d\n\n", x);
    division(&x,&y); printf("A/B=%d\n",x);
    printf("Al final de la ultima ejecucion: A=%d\n\n", x);
   
    return(0);
}


void suma (int *a, int *b)
{
    *a=*a+*b;
}
void resta(int *a, int *b)
{
    *a=*a-*b;
}
void producto(int *a,int *b)
{
    *a=*a*(*b);
}
void division(int *a, int *b)
{
    *a=*a/(*b);
}




Un saludo.

No hay comentarios:

Publicar un comentario