Está en la página 1de 1

ESCUELA POLITECNICA NACIONAL

DEBER N°5
Nombre: David Valdivieso
Grupo: GR-4
Fecha: 5/8/2020

7._ Explique por qué la siguiente función puede producir un valor incorrecto cuando se
ejecute:

long factorial (long n)


{
if (n == 0 || n == 1)
return 1;
else
return n * factorial (−−n);
}
Da un valor erróneo ya que - -n es igual n=n-1 y eso causa que de un error para que el
valor sea correcto de estar dentro del paréntesis n-1 y ahí nos da los valores
correspondientes.

8._ Se dispone de los dos procedimientos siguientes:


void f1( int x, int *y, int a, int b )
f

x = x + 1;
*y = *y + 1;
x = x + a;
*y = *y + b;
printf( "%d %d n", x, *y );
g
n

void f2( int a, int *b )


f

a = a + 1;
*b = *b + 1;
a = a + a;
*b = *b + *b;
printf( "%d %d n", a, *b );
g
n

Y del programa principal:


#include <stdio.h>
void main()
f

int a = 0, b = 0;
llamada
printf( "%d %d n", a, b );
g
n

Indicar el resultado de ejecutar este programa en caso de que llamada se substituya por:
_ f1( a, &b, a, b ); o bien por
_ f2( a, &b );

También podría gustarte