错误信息的情况如下,麻烦大佬帮忙看看哈!

#include <stdio.h>
main()
{
int a,b,c;
int *p;
scanf("%d%d%d",&a,&b,&c);
p=fun_cmp(&a,&b,&c);
printf("%d %d\n",p,*p);
}
int *fun_cmp(int *x,int *y,int *z )
{
if(*x>=*y&&*x>=*z) return x;
if(*y>=*x&&*y>=*z) return y
else return z;
}

附加一道类似的,
#include <stdio.h>
main() /*返回值是指针*/
{
int *fun_cmp(int *x,int *y);
int a,b;
int *p;
scanf(" %d %d ",&a,&b);
p=fun_cmp(&a,&b);
printf("%d\n",p); /**/
printf("%d\n ",*p); /**/

}
int *fun_cmp(int *x,int *y)
{
if(*x>*y) 
return x;
else 
return y;
}

如果把scanf换成 int a=1,b=2; 的话此程序就正常;
请求以上两题(特别是第一题)的解答
第一道题的错误信息如下:
warning C4013: 'fun_cmp' undefined; assuming extern returning int
warning C4047: '=' : 'int *' differs in levels of indirection from 'int '
error C2040: 'fun_cmp' : 'int *(int *,int *,int *)' differs in levels of indirection from 'int ()'
error C2143: syntax error : missing ';' before 'else'

大话西游666
浏览 160回答 2
2回答

摇曳的蔷薇

第一题少了一个声明 int *fun_cmp(int *x,int *y,int *z),或者你把函数的调用那部分放到前面去就可以省略这个声明,int *fun_cmp(int *x,int *y,int *z ){if(*x>=*y&&*x>=*z) return x;if(*y>=*x&&*y>=*z) return yelse return z;}这部分写的不是很清晰,而且出现了错误,最好写成int *fun_cmp(int *x,int *y,int *z ){if(*x>=*y&&*x>=*z)&nbsp;return x;else if(*y>=*x&&*y>=*z)&nbsp;return y;else&nbsp;return z;}这样看起来是不是好点?这程序还有其他的错误,因为我对指针还不是很熟悉,不知道怎么改了,希望对你有点帮助

梵蒂冈之花

*fun_cmpreturn y后面少个分号&nbsp;第二个把scanf里的空格去掉试一下
打开App,查看更多内容
随时随地看视频慕课网APP