A) Examine the following code for calculating the greatest common divisor. The c
ID: 3755264 • Letter: A
Question
A) Examine the following code for calculating the greatest common divisor.
The code is implemented recursively.
#include <stdio.h>
/*****************************************************************
* gcd - finds greatest common divisor between two positive integers
*
* restrictions - Both parameters must be positive.
*****************************************************************/
int gcd(int val1, int val2){
int modVal = val1 % val2;
if (modVal == 0) {
return val2;
} else {
int result = gcd(val2, modVal);
return result;
}
}
/*****************************************************************
* main - main program to exercise 'gcd'
*****************************************************************/
int main(int argc, char *argv[]){
int num1, num2;
printf("Please type two positive numbers: ");
scanf("%d %d", &num1, &num2);
if(num1 <= 0 || num2 <= 0){
printf("Invalid input. Numbers must be positive.");
return 0;
}
printf("Their gcd is %d. ", gcd(num1, num2));
return 0;
}
Assume that the user types 12 and 80 for the code below. Trace the execution of
each recursive call by stating the arguments of each invocation of the gcd function.
gcd(12, 80)
gcd( , ) // continue completing the list of recursive calls
// until the program terminates
B. (3 pts) What value is returned by gcd(12, 80)? ______________
Explanation / Answer
A. Assume that the user types 12 and 80 for the code below. Trace the execution of each recursive call by stating the arguments of each invocation of the gcd function. gcd(12, 80) gcd(80, 12) // continue completing the list of recursive calls gcd(12, 8) gcd(8, 4) // Recursion ends here because gcd(8, 4) returns 4 B. (3 pts) What value is returned by gcd(12, 80)? 4
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.