检查:输入a、b、c3个值,输出其中最大者。
解:#include<stdio.h>
void main()
{
int max(int x,int y,int z);
int a,b,c;
scanf("max=%d,%d,%d,&a,&b,&c);
e=max(a,b,,c);
printf("max=%d\n",e);
}
int max(int x,int y,int z)
{
int h; (此处h可与第一行中文件名h相同吗)
if(x>y);
h=x;
else h=y;
else h=z;
return(h);
}
解释::#include<stdio.h>
void main()
{int a,b,c,max;
printf("please input a,b,c:\n");
scanf(“%d,%d,%d",&a,&b,&c);
max=a;
if(max<b)
max=b;
if(max<c)
max=c;
printf("The largest number is %d",max);
}
首先这两个程序的目的都是一样,为了比较3个数a、b、c,并得出最大的数,只不过第一个程序把比较的过程封装成函数,然后再main中调用了。
你要求检查的程序:
int a,b,c;
这里少定义一个变量e。
--------------------------------------------
scanf("max=%d,%d,%d,&a,&b,&c);
这里双引号丢了,而且应改为
printf("请输入要比较的3个数");
scanf("%d,%d,%d",&a,&b,&c);
我认为更好点。
--------------------------------------------
e=max(a,b,,c);
这里b后多了个逗号~
--------------------------------------------
int h;
这里的h是变量,而开头的#include<stdio.h>里stdio.h是头文件,c语言里大部分函数并不是自带的,它们都被包含在头文件里(头文件的扩展名为.h),例如:printf、scanf两个函数就被包含在stdio.h的头文件里。
--------------------------------------------
if(x>y);
h=x;
else h=y;
else h=z;
这循环错了,if语句的格式为“ if(条件)语句; ”,分号不可乱加,循环应改为
if(x>y) h=x;
else h=y;
if(z>h)h=z;
----------------------------------------------
我把正确的程序写在下面(已经在VS2008上运行成功):
#include<stdio.h>
void main()
{
int max(int x,int y,int z);
int a,b,c,e;
printf("请输入需要比较的三个数:");
scanf("%d,%d,%d",&a,&b,&c);
e=max(a,b,c);
printf("max=%d\n",e);
}
int max(int x,int y,int z)
{
int h;
if(x>y) h=x;
else h=y;
if(z>h)h=z;
return(h);
}
你要求解释的程序:
#include<stdio.h>
void main()
{int a,b,c,max; //定义需比较的变量a、b、c,以及最大值max
printf("please input a,b,c:\n"); //在控制台输出please input a,b,c: ,并换行(\n)
scanf(“%d,%d,%d",&a,&b,&c); //通过scanf函数为a,b,c赋初值
max=a; //先假设a为最大值,并赋给max
if(max<b) //比较max和b的大小,如果max大则不变,如果b大则把b赋给max
max=b;
if(max<c) //比较max和c的大小,如果max大则不变,如果c大则把b赋给max
max=c;
printf("The largest number is %d",max); //输出最大值max
}
希望对你又帮助,O(∩_∩)O~
一、函数体里面不能定义其它函数,main函数怎么说也是一个函数, int max(int x,int y,int z); 你要把这一行放到void main的上边去
二、 max=a;
if(max<b)
max=b;
if(max<c)
max=c;
先假设a为最大值,再拿最大值分别和b、c判断,如果最大值比他们小则令他们为最大值