#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;
}