c语言字符串和字符问题求解

找出字符串中最大的字符,不知道我的代码中哪里出现了问题

    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]);

#include <stdio.h>
#include <string.h>

int main(void) {
char a[2][20], b[20];
int i;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_char = b[0];
    for (i= 1; i < strlen(b); i++) {
if (b[i] > max_char) {
max_char = b[i];
}
}
printf("该字符串中 ASCII 码最大的字符是:%c", max_char);
}
return 0;
}