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

下面是我的一个程序 ,但是我不明白那里错了 请高手指教一下!!

下面是我的一个程序 ,但是我不明白那里错了 请高手指教一下!!

BIG阳 2023-04-20 19:15:18
#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贡献1862条经验 获得超6个赞

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); 


查看完整回答
反对 回复 2023-04-23
?
波斯汪

TA贡献1811条经验 获得超4个赞

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

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

 


查看完整回答
反对 回复 2023-04-23
  • 2 回答
  • 0 关注
  • 142 浏览

添加回答

举报

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