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

下面是一个程序 ··但是我不明白那里错了 请慕友指教一下!!

下面是一个程序 ··但是我不明白那里错了 请慕友指教一下!!

C PHP
慕虎7371278 2022-08-04 11:07:21
#include<stdio.h>int max(int a,int b,int c);{max=a;if(max<b)max=b;if(max<c)max=c;return(max);}void main(){int a,b,c,max;printf("please input%d\n")scanf("%d,%d,%d",&a,&b,&c);max=max(a,b,c)printf("the max is%d\n",max);}
查看完整描述

2 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

1: #include<stdio.h>
2: int max(int a,int b,int c);
3: {
4: max=a;
5: if(max<b)
6: max=b;
7: if(max<c)
8: max=c;
9: return(max);
10: }
11: void main()
12: {
13: int a,b,c,max;
14: printf("please input%d\n")
15: scanf("%d,%d,%d",&a,&b,&c);
16: max=max(a,b,c)
17: printf("the max is%d\n",max);
18: }

整个程序在逻辑上没什么问题,只是在语句书写、变量的定义和该用什么变量名等细节方面有些问题。
首先,语句书写,第14、16句末缺少“;”

其次,
1、在max()函数体中,可以用函数名max作为局部变量,但也要先给予定义,即第3句后面添加一句 int max;
2、第13、16句,变量max不能和函数max()同名,建议将变量max改名,如:
13: int a,b,c,mx;
16: mx=max(a,b,c);
17: pintf("the max is %d\n",mx);
3、可以直接在第17句中调用max(),这样可以省去第16句:
17: printf("the max is %d\n",max(a,b,c));

第三,第14句printf("please input %d\n");中含有%d,但是后面没有相应的输出数据,那么%d的位置就会显示内存中任意一个单元的值了。如果本意想显示字符“%”,应该用连续两个“%”表示,写成:
printf("please input %%d\n");
但是建议改成这样更明了:
printf("please input three numbers , delimited with \",\"\n");
意思是:请输入3个数,用“,”分隔

整个程序修改如下:
# include <stdio.h>
int max(int a,int b,int c)
{ int max;
max=a;
if(max<b)
max=b;
if(max<c)
max=c;
return(max);
}
void main()
{
int a,b,c,mx;
printf("please input %%d\n");
scanf("%d,%d,%d",&a,&b,&c);
mx=max(a,b,c);
printf("the max is %d\n",mx);
}

或者:
# include <stdio.h>
int max(int a,int b,int c)
{ int max;
max=a;
if(max<b)
max=b;
if(max<c)
max=c;
return(max);
}
void main()
{
int a,b,c;
printf("please input three numbers , delimited with \",\"\n");
scanf("%d,%d,%d",&a,&b,&c);
printf("the max is %d\n",max(a,b,c));
}

小伙子,这样的解答满意吗?


查看完整回答
反对 回复 2022-08-08
?
动漫人物

TA贡献1815条经验 获得超10个赞

1、变量名不要和类名重复...把程序中的max(除了max(a,b,c))换成其他名字(比如z)就可以了;
2、max函数中注意else的情况!!会有没有完全包含可能的错误。

程序如下:
#include<stdio.h>

int max(int a,int b,int c){
int z;
if(a<b) z=b;
else z=a;
if(z<c) z=c;
else z=z;
return z;
}

void main(){
int a,b,c,m;
printf("please input%d\n");
scanf("%d,%d,%d",&a,&b,&c);
m=max(a,b,c);
printf("the max is%d\n",m);
}


查看完整回答
反对 回复 2022-08-08
  • 2 回答
  • 0 关注
  • 127 浏览

添加回答

举报

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