我们从最基本的比较两个数的大小,到从三个整数中取最大的,来领会不同方法的算理,提示自己代码的编写能力。
取两个整数中的较大者
#include <stdio.h> int max(int x,int y);//求两个整数中的较大者 int main(void) { int a; int b; int c; scanf("%d,%d",&a,&b); c=max(a,b); printf("max=%d\n",c); return 0; } //求两个整数中较大的 max 函数 int max(int x,int y) { int z; if(x>y)z=x; else z=y; return(z); }
取三个整数中的较大者
方法一:
#include <stdio.h> int max(int x,int y,int z) ;//求三个个整数中的较大者 int main(void) { int a; int b; int c; int d; scanf("%d,%d,%d",&a,&b,&c); d=max(a,b,c); printf("max=%d\n",d); return 0; } //求三个个整数中较大的 max 函数 int max(int x,int y,int z) { int big; if(x>=y) big=x; else big=y; if(z>big) big=z; return(big); }
方法二
#include <stdio.h> int max(int x,int y);//声明 int main(void) { int a; int b; int c; int big; printf("请输入三个整数,比如 \"1,2,3\" ,取最大的一个:\n"); scanf("%d,%d,%d",&a,&b,&c); big=max(max(a,b),c); printf("max=%d\n",big); return 0; } int max(int x,int y) { int z; if (x>y) z=x; else z=y; return z; }
方法三
#include <stdio.h> int Max(int x,int y,int z);//声明 int main(void) { int a,b,c; printf("请输入三个整数:\n"); scanf("%d %d %d",&a,&b,&c); printf("maxnumber = %d\n",Max(a,b,c)); } int Max(int x,int y,int z) { int big; if (x>=y&&x>=z) big=x; else if (y>=x&&y>=z) big=y; else big=z; return big; }
方法四
#include<stdio.h> int main() { int a,b,c,max1,max2; printf("请输入三个整数:\n"); scanf("%d,%d,%d",&a,&b,&c); max1=a>b?a:b; max2=max1>c?max1:c; printf("%d",max2); return 0; }
方法五
#include <stdio.h> int main() { int a,b,c; printf("请输入三个整数:"); scanf("%d %d %d",&a,&b,&c); if(a>b) { //a为a、b中的最大值 if(a>c) { printf("最大值为:%d\n",a); } else { printf("最大值为:%d\n",c); } } else { //b为a、b中的最大值 if(b>c) { printf("最大值为:%d\n",b); } else { printf("最大值为:%d\n",c); } } return 0; }
方法六
#include <stdio.h> nt max(int a,int b,int c);//声明 int main(void) { int a,b,c; int big; printf("请输入三个整数:"); scanf("%d %d %d",&a,&b,&c); big=max(a,b,c); printf("%d",big); } int max(int a,int b,int c) { int max; return c>(max=a>b?a:b)?c:max; }