当前位置: 首页 > ds >正文

C语言用if else求三个数最小值的一题多解

一、问题引入

假设x,y,z为整数,使用if else语句求x,y,z三个数中的最小值?

二、三种解法

第一种解法:

#include<stdio.h>
int main(){int x,y,z,min;printf("请输入三个整数:");scanf_s("%d %d %d", &x, &y, &z);//初始值x为最小值min = x;if (min > y)min = y;if (min > z)min = z;printf("最小值是%d\n", min);reintf 0;
}

第一种解法思路:
第一,他是首先假设x为最小值

第二,总共分四种情况:

一、
进入第一个if判断

若min>y为真 所以x>y 此时y最小

接着进入第二个循环

若min>z为真 那么y>z 最小值是z(以上为第一种情况 是两个if判断都为真的情况)

二、
进入第一个if判断

若min>y为假 此时最小值还是x

接着进入第二个循环

若min>z为假 此时最小值还是x(以上为第二种情况 是两个if判断都为假的情况)

三、
进入第一个if判断

若min>y为真 此时最小值是y

接着进入第二个循环

若min>z为假 此时最小值是y(以上为第三种情况 是两个if判断前一个为真后一个为假的情况)

四、
进入第一个if判断

若min>y为假 此时最小值还是x

接着进入第二个循环

若min>z为真 此时最小值是z(以上为第四种情况 是两个if判断前一个为假后一个为真的情况)

第二种解法:

#include<stdio.h>
int main(){int x,y,z;printf("请输入三个整数:");scanf_s("%d %d %d", &x, &y, &z);if (x < y && x < z)printf("最小值是:%d", x);else if (y < z && y < x)printf("最小值是:%d", y);elseprintf("最小值是:%d", z); return 0;
}

 第二种解法思路:
第一、
若第一个if表达式为真,进入第一个if判断,x<y并且x<z,那么显而易见,最小值就是x

若第二个表达式为真,计入第二个else if,y<z&&y<x, 那么这种情况,显而易见,最小值就是y

以上两种情况,最小值不是x就是y(即前两种情况都不满足),那么最后一个else只z就是最小值 

第二、
第二种解法中要注意,每个条件表达式之间是互斥的(理解即可) 

第三种解法: 

#include<stdio.h>
int main(){int x,y,z;printf("请输入三个整数:");scanf_s("%d %d %d", &x, &y, &z);if (x > y)if (y > z)printf("最小值是%d\n", z); else{printf("最小值是%d\n", y); }elseif (x > z)printf("最小值是%d\n", z); elseprintf("最小值是%d\n", x); return 0;
}

第三种解法思路:
第一、
首先我们要明确题目要求是要我们求最小值,所以我们一开始,可以先随意将两个数进行比较,就像如上图代码中的第一个if

是先将x和y值进行比较,

若第一个if为真,那么y是最小值,接着进入第一个if里面的if嵌套,若为真,那么z就是最小值……

但是若第一个if为假,那么执行第一个if对应的else里面的……

第三种if循环里面的思路与以上两种思路类似,就不赘述了

总结、
学习任何一门语言,多思考,多实践,要养成开放性,灵活性的思维,不唯书,不为上,只为实,同时还要有批判思维,多学多问,多做!!! 

创作不易,如有问题,多谢各位广大网友指正~

http://www.xdnf.cn/news/522.html

相关文章:

  • c++冒泡排序实现
  • Java Web 之 简介 100问
  • 大模型时代:机遇与风险并存的AI革命
  • Java Stream API 实践指南:从基础操作到高效用法
  • 【操作系统原理03】处理机调度与死锁
  • 运筹学之模拟退火
  • 生成模型StackGAN模型详解
  • 高效的项目构建:用 Makefile 自动化你的构建过程
  • Mybatis源码01-SpringBoot启动时mybatis加载过程
  • U-Boot 启动过程详解
  • 杂记-2025年4月19日
  • Linux压缩与解压命令完全指南:tar.gz、zip等格式详解
  • JAVA 继承
  • 【EDA软件】【设计约束和分析操作方法】
  • 【AI提示词】经济学家
  • 使用Ingress发布应用程序
  • MySQL——事务
  • 【java实现+4种变体完整例子】排序算法中【快速排序】的详细解析,包含基础实现、常见变体的完整代码示例,以及各变体的对比表格
  • Day4-存储技术概述
  • csdn教程
  • 统信UOS1060中恢复默认出厂设置
  • 使用 YOLOv8 模型对外接摄像头(设备索引为 1)实时分析
  • 端口镜像,
  • Java InvalidClassException 深度解析
  • Linux网络编程——I/O多路转接(2)之 poll、epoll
  • Mesh模型孔洞修补算法总汇
  • 【大疆dji】什么是ESDK?
  • 腾讯云对象存储m3u8文件使用腾讯播放器播放
  • 【HDFS入门】HDFS性能调优实战:小文件问题优化方案
  • 基于Springboot+Mysql的的小区物业管理系统(含LW+PPT+源码+系统演示视频+安装说明)