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));
}
小伙子,这样的解答满意吗?
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);
}
- 2 回答
- 0 关注
- 127 浏览
添加回答
举报