栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c语言中的比较大小问题

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c语言中的比较大小问题

当我们学习c语言一段时间后,我们第一个的问题可能就是比较大小问题,许多人都觉的它十分的简单。但是它也综合的考察了我们对于各种基本语句的综合运用,还会延伸出许多其他有趣的问题 那么我们今天就来整理一下在学习中我所遇到的比较大小问题。

一、

首先,当然是最简单的2个数比较大小问题,输入两个数,并输出较大的那一个;很自然我们就想到了if语句(为了方便,我们先不考虑两数相等的情况)

#include
int main()
{
	int a,b;
	printf("请输入两个数:");
	scanf("%d %d",&a,&b);
	
	
	if(a>b) 
     printf("%d",a);
	
    else   
    printf("%d",b);
	
	
	return 0;
}

还有其他的方法吗?

#include
int main()
{
	int a,b;
	printf("请输入两个数:");
	scanf("%d %d",&a,&b);
	
	
		int max;
		max=(a>b)?a:b;
		printf("%d",max);
	
	return 0;
}

条件表达式暂时在平时应用不是很广,可在某些地方还是可以发挥比较重要的作用,还可以将代码变得更加简短。

二、

两个数的问题结束了,那么下一个自然就是三个数的问题,输入三个数并输出最大的那一个,第一个方法我们还是用if语句来解决问题,可是如果直接将a b c三个数进行比较的话,我们需要书写大量的if语句,那样代码将会变得非常的难看!!

这时我们就要运用一个新的思路,先定义一个数max,再将任意一个数赋值给max,再将max与其他数进行比较,如果max小于该数就将该数的值赋给max,这样就省下了大量的if语句。

代码如下

#include 
int main()
{
	int a,b,c;
	int max;
	scanf("%d%d%d",&a,&b,&c);
	max=a;
	
	if(max 

利用这个思路继续思考,如果是n个数呢?这下我们面临的有两个问题,如何存放这些数,以及如何处理简化大量的判断语句。那么我们就会用到数组和循环了。

代码如下

#include
int main()
{
	int a[100];
	int i,n=0;
    printf("请输入要比较大小的数,结束请按回车:");
	for(i=0;;i++)
	{
		scanf("%d",&a[i]);
		n++;
		if(getchar()=='n') break;
	}
	//获取输入的数并存入一个数组当遇到回车时结束循环 
    int max=a[0];
	
	for(i=1;i<=n-1;i++)
	{
		if(max

是不是感觉开始复杂了呢?

三、

经过以上的训练,现在我们来看一个比较综合的问题

给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的 三个整数,使得它们的和与 target 最不接近。返回这三个数的和。假定每组输 入只存在唯一答案。 例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最不接近的三个数的和为 -4 (-1+1-4=-3)

思路:

第一步   首先我们要获取一个数组和目标值,并将其储存起来。

第二步    三个数的和与目标值的差是否接近我们可以用绝对值来衡量

第三步   利用之前的思路,定义max,并不断将更大的值赋值给max

下面是答案

#include
#include
int main()
{
	
	int nums[100];
	int n=0,i;
	printf("请输入一个数组:");
	for(i=0;;i++)
	{
		scanf("%d",&nums[i]);
		n++;
		if(getchar()=='n') break;
	}
//获取输入的一个数组	

	int target;
	printf("请输入target的值:");
	scanf("%d",&target);
//获取 target 的值	
	int j,k;
	int max=nums[1]+nums[2]+nums[3]-target,x;//定义数组前三个数的和与目标值的差max,以及数组中任意三个数的和与目标值的差为x 
	for(i=0;i 

总结:比较大小问题虽然简单,但是依旧值得我们认真去学习,在许多综合性问题中,比较大小可能只是整段代码中非常小的一个点,但经过掩饰,许多人依然不会第一时间反应出来,而却想用更加复杂的方法,以至于事半功倍。同样,比大小问题也可以延伸出许多有趣的问题,比如排序等等,那便更是一个让人头秃的事了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/352393.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号