Given the char * variables name1 , name2 , and name3 , write a fragment of code that assigns the largest value to the variable max (assume all three have already been declared and have been assigned values).
I’ve tried and came up with this:
if ((strcmp(name1,name2)>0)&&(strcmp(name1,name3)>0)){
max=name1;
}
else if ((strcmp(name2,name1)>0)&&(strcmp(name2,name3)>0)){
max=name2;
}
else if((strcmp(name3,name1)>0)&&(strcmp(name3,name2)>0)){
max=name3;
}
else if(strcmp(name3,name1)==0){
max=name1,name3;
}
else if (strcmp(name2,name1)==0){
max=name2,name1;
}
else if (strcmp(name2,name3)==0){
max=name2,name3;
}
else{
max=name1,name2,name3;
}
However, I get this error Your code is incorrect. You are not handling the situation
where two or more strings are equal.
Solved…
strcmpreturns 0 when your strings are equalI’ll leave it for you to figure out why you aren’t handling it.
Edit:
Bob and Alice are 10 years old.
What is the max age?
Hint: it’s not undefined…. it’s 10.