程序一:
#include<stdio.h>
void main()
{
int max(int a,int b,int c);
int x,y,z,d;
scanf("%d,%d,%d",&x,&y,&z);
d=max(x,y,z);
printf("The max is %d\n",d);
}
int max(int a,int b,int c)
{
int midway; /*midway为中间值*/
midway=(a>b?a:b);
midway=(midway>c?midway:c);
return midway;
}
程序二:
#include<stdio.h>
void main()
{
int max(int a,int b,int c);
int x,y,z,d;
scanf("%d,%d,%d",&x,&y,&z);
d=max(x,y,z);
printf("The max is %d\n",d);
}
int max(int a,int b,int c)
{
int midway1,midway2; /*midway1,midway2为中间值*/
printf("%d,%d,%d\n",a,b,c); /*观察a,b,c此时的数值*/
midway1=(a>b?a:b);
midway1=(midway2>c?midway2:c);
return midway1;
}
程序三:
#include<stdio.h>
void main()
{
int max(int a,int b,int c);
int x,y,z,d;
scanf("%d,%d,%d",&x,&y,&z);
d=max(x,y,z);
printf("The max is %d\n",d);
}
int max(int a,int b,int c)
{
int midway1,midway2; /*midway1,midway2为中间值*/
midway1=(a>b?a:b);
midway1=(midway2>c?midway2:c);
return midway1;
}
测试结果:其中上面的程序1和程序2经测试正确的,但程序3测试后的结果是错误的(它的结果总是2463).
问题:感觉好象类型的错误,但怎么也想不明白的地方是程序2仅仅是比程序3多了一行代码"printf("%d,%d,%d\n",a,b,c);"这代码到底起了什么作用??