请问这是什么错误,该怎么解决

img


img

strcmp的第一个参数你用的char类型,但是strcmp的参数需要是char*类型。你把代码贴出来看看。
读取三个字符串需要用二维数组,例如:a[3][100],字符串的复制用strcpy函数。
代码修改如下:

#include <stdio.h>
#include <string.h>
void main()
{
    char a[3][100],c[100];//修改1
    int i;
    printf("输入三个字符串:");
    //修改2
    for(i=0;i<3;i++)
        gets(a[i]);
    for (i=0;i<2;i++)
    {
        if(strcmp(a[i],a[i+1])<0)
            strcpy(c,a[i+1]);
        else
            strcpy(c,a[i]);
    }
    printf("%s",c);
}

字符不能转换为字符数组,把代码发出来看看。

不用那个strcmp,直接两个字符中间放==就好



#include <stdio.h>
#include <string.h>
void main()
{
    char a[3][1024],c[1024];
    int i;
    printf("输入三个字符串:");
    for(i=0;i<3;i++)
        gets(a[i]);
    for (i=0;i<2;i++)
    {
        if(strcmp(a[i],a[i+1])<0)
        {
            strcpy(c,a[i+1]);
            strcpy( a[i+1],a[i]);
            strcpy(a[i],c);
        }
        else
            strcpy(c,a[i]);
    }
    printf("%s",c);
}