C Programming: I have two codes that I need to figure out the output. Would you
ID: 3936962 • Letter: C
Question
C Programming: I have two codes that I need to figure out the output. Would you mind showing how you got the answers
Thanks in advance
#1)
#include
int f(int num) {
if(num == 0) return 0;
int digit = num % 10;
if(digit % 2 == 1) return 1 + f(num/10);
return f(num/10);
}
int main() {
printf("25 is %d ", f(25));
printf("1010 is %d ", f(1010));
printf("2468 is %d ", f(2468));
printf("1357 is %d ", f(1357));
printf("12345 is %d ", f(12345));
return 0;
}
#2)
#include
#include
void f(char *s, int n) {
if(*s == '') return;
printf("%c", *s);
if(strlen(s) > n)
f(s + n, n);
return;
}
int main () {
char s1[] = "Crimson Tide";
char s2[] = "University of Alabama";
char *ptr = s1;
printf("%s ", s1);
f(ptr, 1); printf(" ");
f(ptr, 2); printf(" ");
ptr = s2;
printf("%s ", s2);
f(ptr, 3); printf(" ");
return 0;
}
Explanation / Answer
The output for the 1st is
25 is 1
1010 is 2
2468 is 0
1357 is 4
12345 is 3
int f(int num) {
if(num == 0) return 0;//not true
int digit = num % 10;//digit = 2
if(digit % 2 == 1) return 1 + f(num/10); //it will return 1
return f(num/10);
int f(int num) {
if(num == 0) return 0;//false
int digit = num % 10;//digit = 10
if(digit % 2 == 1) return 1 + f(num/10);//false
return f(num/10); //will call 101 same function
then again digit =1 it will return 1+f(10) whereas f(10) is 1
similarly you can calculate for other numbers
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.