重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
不常规方法:用函数指针变量调用函数
为柳江等地区用户提供了全套网页设计制作服务,及柳江网站建设行业解决方案。主营业务为成都做网站、成都网站建设、柳江网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
#includestdio.h
int max(int x,int y)
{
return (xy?x:y);
}
main()
{
int (*p)(int,int); //定义p是指向函数的指针变量
int a,b,c,d;
p=max;//使p指向函数max
printf("输入3个数\n");
scanf("%d %d %d",a,b,c);
d=(*p)(a,b);//通过指针变量p调用max函数
printf("max=%d\n",(*p)(d,c));
}
方法一:交换两个数
#include "stdio.h"
int main()
{ int a,b,c,t;
printf("输入3个数\n");
scanf("%d %d %d",a,b,c);
if(ab)
{t=a;a=b;b=t;}
if(ac)
{t=a;a=c;c=t;}
if(bc)
{t=b;b=c;c=t;}
printf("max=%d\n",c);
printf("%d %d %d",a,b,c);
}
方法2条件表达式,书上例题,
#include "stdio.h"
int main()
{
int max();//函数声明
extern int A,B,C; //外部变量声明
printf("输入3个数\n");
scanf("%d %d %d",A,B,C);//输入外部变量的值
printf("max is %d\n",max());
}
int A,B,C;//定义外部变量
int max()
{
int m;
m=AB?A:B;
if(Cm)
m=C;
return m;
}
以上可以改为
#includestdio.h
main()
{
int a,b,c;
printf("输入3个数\n");
scanf("%d %d %d",a,b,c);
if(c(ab?a:b))
printf("max=%d\n",c);
else
printf("max=%d\n",ab?a:b);
}
3 定义max函数
#includestdio.h
int max(int x,int y)
{
if (xy) //或者直接语句return (xy?x:y);
return x;
return y;
}
main()
{
int a,b,c,d;
printf("输入3个数\n");
scanf("%d %d %d",a,b,c);
d=max(max(a,b),c);
printf("max=%d\n",d);
}
1、max函数不是一个C语言里提供给的函数,而是程序员自己定义的。一般来说,max函数是用来求一组数据中的最大值。
2、例如:
int max(int a,int b)
{
if (ab)
return a;
else
return b;
}
// 或者用更简单的:
int max(int a,int b)
{
return ab?a:b;
}
//或者使用宏定义:
#define MAX(a,b) (ab)?(a):(b)
main()
{
int x,y,z,max;
printf("input two numbers:\n");
scanf("%d%d",x,y);
z=MAX(x,y);
printf("maxnum=%d",z);
getch();
}
1、首先是鼠标选择单击C语言编程软件创建一个空的C语言文件。
2、定义四个整数变量a,b,c,max。三个变量a,b和c用于存储输入的三个数字,max用于存储三个数字的最大值。
3、使用scanf语句从键盘输入三个数字。在注意之前不要忘记使用变量。
4、使用max可以逐个比较三个数字,并将最大数量存储在最大值中。
5、最大输出使用printf语句输出,注意语句的用法。
6、单击右上角工具栏中的两个图标运行程序。
7、输入两个不同的数字以验证您的程序是否正确。
改正后的:
#includestdio.h
int main(){
int max(int x,int y,int z);
int a,b,c,d;
scanf("%d,%d,%d",a,b,c);
d=max(a,b,c);
printf("%d\n",d);
return 0;
}
int max(int x,int y,int z){
int w;
if(xyxz){
w=x;}
else{
if(yxyz){
w=y;
}else{
w=z;
}
}
return w;
}
优化后的:
#includestdio.h
int main(){
int max(int x,int y,int z);
int a,b,c,d;
scanf("%d,%d,%d",a,b,c);
d=max(a,b,c);
printf("%d\n",d);
return 0;
}
int max(int x,int y,int z){
if(xyxz) return x;
if(yxyz) return y;
return z;
}
#include stdio.h
int max(int a,int b)
{
return ab?a:b;
}
int main()
{
int a,b,c;
scanf("%d%d%d",a,b,c);
printf("%d\n",max(max(a,b),c));
return 0;
}
int
max(int
a,int
b,int
c);
//int
min(int
a,int
b,int
c);
void
main()
{
int
x,y,z;
printf("请输入三个数:");
scanf("%d%d%d",x,y,z);
printf("三个数选出最大数是%d\n",max(x,y,z));
//
printf("三个数选出最小数是%d\n",min(x,y,z));
}
int
max(int
a,int
b,int
c)
{
if
(a=ba=c)
return
a;
if
(b=ab=c)
return
b;
else
return
c;
}
/*int
min(int
a,int
b,int
c)
{
if
(a=ba=c)
return
a;
if
(b=ab=c)
return
b;
else
return
c;
}*/
另外,团IDC网上有许多产品团购,便宜有口碑