为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C
大话西游666 2022-11-18 19:15:10
#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 yelse 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 intwarning 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'
查看完整描述

2 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

第一题少了一个声明 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 y
else return z;
}
这部分写的不是很清晰,而且出现了错误,最好写成
int *fun_cmp(int *x,int *y,int *z )
{
if(*x>=*y&&*x>=*z) 
return x;
else if(*y>=*x&&*y>=*z) 
return y;
else 
return z;
}
这样看起来是不是好点?这程序还有其他的错误,因为我对指针还不是很熟悉,不知道怎么改了,希望对你有点帮助


查看完整回答
反对 回复 2022-11-22
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

*fun_cmp
return y后面少个分号 
第二个把scanf里的空格去掉试一下

查看完整回答
反对 回复 2022-11-22
  • 2 回答
  • 0 关注
  • 158 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信