我不明白我是错在了哪里

#include<stdio.h>
#include<string.h>
int main()
{
int c(),result;
char a[5][100];
int i;
printf("请输入五位同学的姓\n");
for(i=0;i<5;i++)
{
scanf("%s",a[i]);
}
printf("排名最前面的姓为:\n");
result=c(a[i]);
printf("%s",a[0]);
return 0;
}
int c()
{
char b[5][100];
int i;
for(i=1;i<5;i++)
{
if(strcmp(b[0],b[i])==1)
{
strcpy(b[0],b[i]);
}
}
return b[0];
}

编译错还是运行结果错啊?
你调用的时候写c(a[i]),可你定义的c函数没有参数啊

#include<stdio.h>
#include<string.h>
int main()
{
char * c(char a[5][100]);
char * result;
char a[5][100];
int i;
printf("请输入五位同学的姓\n");
for(i=0;i<5;i++)
{
scanf("%s",a[i]);
}
printf("排名最前面的姓为:\n");
result=c(a);
printf("%s",result);
return 0;
}
char * c(char b[5][100])
{
int i;
for(i=1;i<5;i++)
{
if(strcmp(b[0],b[i])==1)
{
strcpy(b[0],b[i]);
}
}
return b[0];
}

一是函数参数有点问题,然后是变量类型有些不对,修改了一下,如下:


#include<stdio.h>
#include<string.h>
int main()
{
char * c(char (* b)[100]),*result;
char a[5][100];
int i;
printf("请输入五位同学的姓\n");
for(i=0;i<5;i++)
{
scanf("%s",a[i]);
}
printf("排名最前面的姓为:\n");
result=c(a);
printf("%s",result);
return 0;
}
char* c(char (*b)[100])
{
//char b[5][100];
int i;
for(i=1;i<5;i++)
{
if(strcmp(b[0],b[i])==1)
{
strcpy(b[0],b[i]);
}
}
return b[0];
}

代码修改如下:

#include<stdio.h>
#include<string.h>
int main()
{
    int c(char a[][100],char b[]);
    int result;
    char a[5][100];
    char b[100];
    int i;
    printf("请输入五位同学的姓\n"); 
    for(i=0;i<5;i++)
    {
        scanf("%s",a[i]);
    }
    printf("排名最前面的姓为:\n"); 
    result=c(a,b);
    printf("%s",b);
    return 0;
}
int c(char a[][100],char b[])
{
    //char b[5][100];
    int i;
    strcpy(b,a[0]);
    for(i=1;i<5;i++)
    {
        if(strcmp(b,a[i])<1)
        {
            strcpy(b,a[i]);
        }
    }
    return 1;
}