8行一直在报错,求解

    char a[2][20],b[20];
    int i,d,e;
    for(i=0;i<2;i++)
    gets (a[i]); 
    printf("第一个字符串的长度为:%d,第二个字符串的长度为:%d\n",strlen(a[0]),strlen(a[1]));
    if(strlen(a[0])==strlen(a[1]))
    {
        b[]=(strcmp(a[0],a[1])>=0?a[0]:a[1]);//这一行一直在报错但是我没看懂
        printf("最大的字符串是:%s\n",b);
        for(i=1;i1];
            b[i+1]=(d>e?b[i]:b[i+1]);
        }
        printf("该字符串中ASCII码最大的字符是:%c",b[i+1]);
 
  • b是字符数组,要赋值,用strcpy
strcpy(b, (strcmp(a[0],a[1])>=0?a[0]:a[1]));
  • 求ascii码最大的逻辑有问题,完整代码参考如下:
#include "stdio.h"
#include "string.h"
int main()
{    
    char a[2][20],b[20];
    int i,d,e;
    for(i=0;i<2;i++)
    gets (a[i]); 
    printf("第一个字符串的长度为:%d,第二个字符串的长度为:%d\n",strlen(a[0]),strlen(a[1]));
    if(strlen(a[0])==strlen(a[1]))
    {
        strcpy(b, (strcmp(a[0],a[1])>=0?a[0]:a[1]));//这一行一直在报错但是我没看懂
        printf("最大的字符串是:%s\n",b);
        char max = b[0];
        for(i=1;i<strlen(b);i++)
        {
            if (max < b[i])
                max = b[i];
        }
        printf("该字符串中ASCII码最大的字符是:%c", max);
    }
} 


可读性太差了,能分开写吗?