运行时,有时有结果,有时没结果,什么原因?

#include<stdio.h>
#include<string.h>
int main(){
char s1[20],s2[20],s3[20];
gets(s1);
gets(s2);
gets(s3);
if(strcmp(s1,s2)>0)
if(strcmp(s2,s3)>0){
printf("最大者:");
puts(s1);
}
if(strcmp(s2,s1)>0)
if(strcmp(s1,s3)>0){
printf("最大者:");
puts(s2);
}
if(strcmp(s3,s2)>0)
if(strcmp(s2,s1)>0){
printf("最大者:");
puts(s3);}
return 0;
}

你这里没有判断相等的情况,比如有两个字符串大小一样而且都是最大值,这时候就没有输出了

你好像有一些情况没有考虑
比如s1 > s2 && s2 < s3等等