55 - Operadores de asignación


Hemos visto hasta ahora que en el lenguaje C el operador de asignación =

En C existe un grupo de operadores de asignación que pueden remplazar a expresiones que hemos utilizado hasta ahora, por ejemplo si tenemos la siguiente expresión de acumulación:

suma=suma+valor;

Esto mismo es común en el lenguaje C escribirlo con la sintaxis:

suma+=valor;

El operador de asignación += suma a la variable indicada a la izquierda la expresión indicada a la derecha del operador +=.

Es obligatorio que los dos caracteres += estén sin espacios en blanco entre ellos.

Los operadores de asignación más comunes son:

+=
-=
*=
/=
%=

Problema 1:

Confeccionar un programa que permita cargar un vector de 5 elementos enteros. Calcular la suma y el producto de todos sus elementos.

Programa: programa187.c

Ver video

#include<stdio.h>
#include<conio.h>

#define CANT 5

void cargar(int vec[CANT])
{
    int f;
    for(f=0;f<CANT;f++)
    {
        printf("Ingrese elemento:");
        scanf("%i",&vec[f]);
    }
}

int retornarSuma(int vec[CANT])
{
    int suma=0;
    int f;
    for(f=0;f<CANT;f++)
    {
        suma+=vec[f];
    }
    return suma;
}

int retornarProducto(int vec[CANT])
{
    int producto=1;
    int f;
    for(f=0;f<CANT;f++)
    {
        producto*=vec[f];
    }
    return producto;
}


int main()
{
    int vec[CANT];
    cargar(vec);
    printf("La suma de sus componentes:%i\n", retornarSuma(vec));
    printf("El producto de sus componentes:%i", retornarProducto(vec));
    getch();
    return 0;
}

Para sumar todas sus componentes iniciamos un acumulador suma en 0 y dentro de un for sumamos sus componentes una a una:

int retornarSuma(int vec[CANT])
{
    int suma=0;
    int f;
    for(f=0;f<CANT;f++)
    {
        suma+=vec[f];
    }
    return suma;
}

Para obtener el producto de todas sus componentes inicializamos una variable en 1 (no puede ser 0 sino el producto por 0 siempre da 0) y luego dentro de un for multiplicamos cada elemento con el operador *=

int retornarProducto(int vec[CANT])
{
    int producto=1;
    int f;
    for(f=0;f<CANT;f++)
    {
        producto*=vec[f];
    }
    return producto;
}

Recordar que la expresión:

        producto*=vec[f];

Es lo mismo que escribir:

        producto=producto*vec[f];

Para ver que se utiliza mucho esta sintaxis de asignación mostramos una de las tantas función del código fuente del sistema operativo Linux:

función de Linux

Retornar