c语言问题,关于字符串与输出

想问一下是不是循环里的那段代码无法读入字符串

用代码块功能插入代码,请勿粘贴截图

#include 
#include 

int main()
{
    char a[17],b[17],c[17];
    scanf("%s %s",a,b);
    int alen=strlen(a);
    int blen=strlen(b);
    int i=0,n;
    if(alen>=blen)
        n=alen;
    else
        n=blen;
    while(iif(a[i]>=b[i])
            c[i]=b[i];
        else
            c[i]=a[i];
        i++;
    }
    printf("%s\n",c[17]);
    return 0;   
}
运行结果及报错内容

无法输出内容

我想要达到的

循环能够正常读入字符串且能正常输出

printf写错了,改为c即可。另外在printf之前,要加上c[i] = '\0';才行

第24行 c[17] 的意思的c的第18位元素,如果想输出c的话,将c[17] 改成 c

格式化%s,是要一个开始地址,一直到\0字符为结束,才是一个字符串,而你c[17]是单个字符,传入数组的首地址c,应该就可以了