Pregunta 2.b · Prácticas de programación UOC Juny 2020

Tema: Transformación entre versión recursiva e iterativa en C · Del examen Juny (2020)

Enunciado

A partir del código C de la función recursiva guess:

#define MAX 64

void guess (int v[MAX], int x, int value)

{

assert (0 <= x && x <= MAX);

if (x > 0) // (1)

{ // (2)

if (v[x-1] > value) v[x-1] = value; // (3)

guess(v, x-1, value); // (4)

}

}

b)

[20%] Escribe una implementación iterativa equivalente en lenguaje C.

Enunciado: Pregunta 2.b · Prácticas de programación UOC Juny 2020

Solución

Según los criterios oficiales de corrección

b. [20%] Escribe una implementación iterativa equivalente en lenguaje C.

Solución: ```c void guess_iter(int v[MAX], int x, int value) { assert(0 <= x && x <= MAX); for (int i = 0; i < x; i++) { if (v[i] > value) { v[i] = value; } } } ``` ```c void guess_iter(int v[MAX], int x, int value) { assert(0 <= x && x <= MAX); while (x > 0) { if (v[x-1] > value) { v[x-1] = value; } x--; } } ```

La explicación paso a paso, hecha con IA, es Premium. Premium

Resuélvelo aquí mismo: corrección automática, pistas y solución paso a paso.

‹ Pregunta 2.c · 2021 · Pregunta 2.b - Transformación a iterativo · Juny 2020 ›

Más ejercicios de Transformación entre versión recursiva e iterativa en C