这个咋做呀,看不懂,可以解释一下吗

输入bcdefgh(换行)m(换行)abcdefg,以下程序的输出结果为().

#include<stdio.h> 

 

main() 

 

 

int i; char string[20],str[3][20]; 

 

for(i=0;i<3;i++)gets(str[i]); 

 

if(strcmp(str[0],str[1])>0) strcpy(string,str[0]); 

 

else strcpy(string,str[1]); 

 

if(strcmp(str[2],string)>0) strcpy(string,str[2]); 

 

printf("%s",string); 

 

}

 

A.bcdefgh

 

B.m

C.abcdefg

D.bcdefgh或abcdefg

B

具体如下:

#include<stdio.h> 
#include <string.h>
int main() 
{
	int i; char string[20],str[3][20]; 
	for(i=0;i<3;i++)gets(str[i]); //从键盘获取三个字符串
	//输入后你说的三个字符串后
	//str[0]="bcdefgh"   str[1]="m"   str[2]="abcdefg"
	//strcmp(str[0],str[1])比较两个字符的大小,str[0]以'b'开头,小于'm',所以if条件不成立
	
	if(strcmp(str[0],str[1])>0) 
		strcpy(string,str[0]); 
	else 
		strcpy(string,str[1]); //执行strcpy(string,str[1]),就是把"m"复制给string 此时string="m";
	//strcmp(str[2],string)比较str[2]和string的大小,'a'小于'm',所以if条件不成立
	if(strcmp(str[2],string)>0) 
		strcpy(string,str[2]); //不执行这条复制语句

	//所以最后string="m"
	printf("%s",string); 
	return 0;
}