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.

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 ›