思路分析:

 先比出2个整数的最大值,然后用最大值和第三个整数比较从而求出3个整数的最大值。

我们今天用几种办法输出3个整数最大值。

方法一:使用if-else语句以及输入输出语句来编写。

方法二:使用三元运算符以及输入输出语句来编写。

方法三:使用自定义指针函数以及三元运算符来编写。

方法四:使用冒泡排序法以及输入输出语句来编写。

方法五:使用求数组最大值的方法来编写。

方法一代码如下:

方法一代码运行结果如下:

方法二代码如下:

方法二代码运行结果如下:

方法三代码如下:

#include <stdio.h>
int ptr(int *x, int *y,int *z ){//这三个指针形参会接收主函数传来的三个数字的地址
     int d,e;    
	 d=*x>*y?*x:*y;//三元运算符
	 e=d>*z?d:*z;//三元运算符
	 return e;//返回e的值,e的值就是三个整数最大的值
}
void main(){
	int a,b,c,m;
	scanf("%d%d%d",&a,&b,&c);
	m=ptr(&a,&b,&c);//调用子函数,实参的值为数字对应的地址
	printf("三个整数的最大值为%d",m);//打印输出三个整数的最大值
}

方法三代码运行结果如下:

方法四代码如下:

#include <stdio.h>
#define N 3
void main(){
	int arr[N];//定义一维数组
	int i,d;//定义变量
	printf("请输入三个整数:");
	for(i=0;i<3;i++){
	scanf("%d",&arr[i]);
	}//从键盘输入数值,给一维数组赋值
	printf("数字从小到大排序为:");
    printf("\n");
	for(i=0;i<N;i++){
		if(arr[i]>arr[i+1]){
			d=arr[i];
			arr[i]=arr[i+1];
			arr[i+1]=d;
		}
	}//使用冒泡排序法,按从小到大排序
		for(i=0;i<N;i++){
			printf("%d\t",arr[i]);
	}//输出按从小到大排序完的数字
 printf("\n");
  printf("三个整数的最大值为%d",arr[N-1]);
  //一维数组的最后一个值就是三个整数的最大值,所以输出arr[N-1];

}

方法四代码运行结果如下:

方法五代码如下

#include <stdio.h>
void main( )
{
  int i,j,arr[3];//定义变量以及初始化数组
  printf("请输入三个整数:");
  for(i=0;i<3;i++){
	  scanf("%d",&arr[i]);
  }//给数组赋值,输入3个整数
  j=arr[0];//初始化数组的最大值为arr[0]
   for(i=0;i<3;i++){
	   if(j<arr[i+1]){
		   j=arr[i+1];
	   }
  }//找到数组的最大值,也就是3个整数的最大值
   printf("数组最大值为%d",j);//输出数组的最大值,也就是3个整数的最大值

}
    

方法五代码运行结果如下

 总结

目前想到用五种办法求3个整数的最大值,我感觉还是用方法二的知识点最方便

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐