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

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循环里面的思路与以上两种思路类似,就不赘述了

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

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

相关文章:

  • 页内碎片和页外碎片的区别
  • 第十届团体程序设计天梯赛-上理赛点随笔
  • @Validated与@Valid的正确使用姿势
  • Python制作简易PDF查看工具PDFViewerV1.0显示优化
  • 【生态与未来】立足原生仓颉:Cangjie Magic 的生态位与未来发展潜力分析
  • 基于 GPT-SoVITS 实现个性化语音复刻的API服务调用:让小说朗读拥有专属声线
  • 静态成员相关知识
  • AOSP的Doze模式-LightIdle初识
  • 测试基础笔记第六天
  • 『Linux_网络』 第二章 UDP_Socket编程
  • 从《周游记3》演绎歌剧版《菊花台》,周杰伦婚礼曲目意大利文版惊喜亮相
  • docker 搭建nacos 2.2.1版本单机版
  • 下一代互联网
  • java怎么完善注册,如果邮箱中途更换,能否判断
  • 2025/4/19 数据库的流程控制函数
  • Redis客户端下载使用
  • 【操作系统原理01】操作系统引论
  • Mysql从入门到上手(二)-全面了解增删改查(CRUD).
  • 《目标检测双雄:YOLO与Faster R-CNN,谁主沉浮?》
  • 文本生成与采样策略 (Text Generation Sampling)
  • 江南大部、江淮南部等地今起有较强降雨,水利部部署防范工作
  • 考艾的森林与雾气中,艺术在生长
  • 平安银行一季度净赚超140亿元降5.6%,营收降13.1%
  • 华夏银行去年净赚超276亿增近5%,个人贷款不良率升至1.8%
  • 鑫苑置业债权人向美国法院申请Chapter 11破产保护
  • 遇见古籍里的先贤,山西博物院“晋国垂棘”明日开展