帮助C中的字符串

时间:2010-04-21 03:51:19

标签: c

给定char *变量name1,name2和name3,编写一个代码片段,为变量max指定最大值(假设所有三个值都已声明并且已分配值)。

我已经尝试并提出了这个:

    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;
}

但是,我收到此错误您的代码不正确。你没有处理这种情况 两个或多个字符串相等的地方。

...解决

2 个答案:

答案 0 :(得分:1)

当你的字符串相等时,

strcmp返回0

我会留下你找出你没有处理它的原因。

修改

鲍勃和爱丽丝已经10岁了 什么是最大年龄?

提示:它不是未定义的......它是10。

答案 1 :(得分:1)

注意: strcmp 进行数字比较!

那是

strcmp("10","2")

返回一个负值,表示"2"大于"10",这几乎肯定是你想要的。

您可能希望在比较之前将字符串转换为某种数字。考虑使用sprintfatoiatofstrtod