【C语言练习】四个整数中找出最大的一个
《啊哈C语言》这本书上的练习题:
从键盘任意读入四个整数,让计算机从中找出最大的一个。
#include <stdio.h>
#include <stdlib.h>
/* 从四个整数中找出最大的数 */
int main()
{int a, b, c, d, e;printf("请输入四个整数:\n");scanf("%d %d %d %d", &a, &b, &c, &d);if (a > b) e = a;else e = b;if (c > e) e = c;if (d > e) e = d;printf("四个整数中最大的数是%d\n");system("pause");return 0;
}
这种方法其实就是冒泡排序,临近的两个数先比大小,胜出的赋值给变量e;然后再和第三个数比较,较大的赋值给变量e;再和第四个数比较,较大的赋值给变量e;最后输出变量e的值。
但是这个方法有个问题,如果输入的整数有很大的值,比如十位以上的数字,那么输出结果就不对。
是数据类型的问题吗?换成long试试
是不是声明变量的时候给变量定义的是int类型呢?换成长整型long是不是可以呢?
#include <stdio.h>
#include <stdlib.h>
/* 从四个整数中找出最大的数 */
int main()
{long a, b, c, d, e;printf("请输入四个整数:\n");scanf("%d %d %d %d", &a, &b, &c, &d);if (a > b) e = a;else e = b;if (c > e) e = c;if (d > e) e = d;printf("四个整数中最大的数是%d\n");system("pause");return 0;
}
把int类型换成long类型之后还是一样的,数字太大结果就不对了,比如输入一个上百亿的数字就识别不了,程序不理它。
看看int和long需要的存储大小
那么我们看下int类型存储大小为2或4个字节,值的范围是-32,768~32,767或者是 -2,147,483,648 ~ 2,147,483,647。我试了一下定义int类型的程序,输入2,147,483,647这个值,可以识别。那么这个机器(win 64)上int类型存储大小是4个字节。long类型呢,存储大小也是4个字节,值的范围是-2,147,483,648 ~ 2,147,483,647。如果是Linux系统的x86_64系统,那么long类型的存储大小就是8个字节了,还没有验证过。
【C语言练习】四个整数中找出最大的一个相关推荐
- 如何在10亿个整数中找出前1000个最大的数?
作者:vincent-duan,专注 Java,沉迷开源,架构师社区合伙人! 面试题目:如何在10亿个整数中找出前1000个最大的数. 我们知道排序算法有很多: 冒泡算法:通过两层for循环,外层第一 ...
- 2.5亿个整数中找出不重复的整数
问题描述:在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数. 思路:采用2-Bitmap(每个数分配2bit,00表示不存在,01表示出现一次,10表示多次,11无意义)进行,共 ...
- 如何在10亿个整数中找出前1000个最大的数(TopN算法)
面试题目:如何在10亿个整数中找出前1000个最大的数. 我们知道排序算法有很多: 冒泡算法:通过两层for循环,外层第一次循环找到数组中最大的元素放置在倒数第一个位置,第二次循环找到第二大的元素放置 ...
- 一道笔试题:从1亿个整数中找出最大的一万个
今天看到一篇赖永浩大牛的博客,由一道笔试题目谈算法优化.http://blog.csdn.net/lanphaday/archive/2008/12/19/3547776.aspx. 题目原题是从10 ...
- 在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数
方案1:采用2-Bitmap(每个数分配2bit,00表示不存在,01表示出现一次,10表示多次,11无意义)进行,共需内存2^32 * 2 bit=1 GB内存,还可以接受.然后扫描这2.5亿个整数 ...
- c语言从4个整数中找最小的数,编程之法:面试和算法心得(寻找最小的k个数)...
内容全部来自编程之法:面试和算法心得一书,实现是自己写的使用的是java 题目描述 输入n个整数,输出其中最小的k个. 分析与解法 解法一 要求一个序列中最小的k个数,按照惯有的思维方式,则是先对这个 ...
- 1亿个数中找出最大的100个数(top K问题)
如何在1亿个数中找出最大的100个数(top K问题) 最容易想到的方法是将数据全部排序,然后在排序后的集合中进行查找,最快的排序算法的时间复杂度一般为O(nlogn),如快速排序.但是在32位的 ...
- 大数据面试题——如何在大量的数据中找出不重复的数
问题描述: 在2.5亿个整数中找出不重复的数,注意,内存不足以容纳2.5亿个整数. 分析解读: 方法一:分治法 采用hash的方法,把这2.5亿个数划分到更小的文件中,从而保证每个文件的大小不超过可用 ...
- 【c语言】在一个一维整数组中找出其中最大的数及其下标
//在一个一维整型数组中找出其中最大的数及其下标 #include <stdio.h> #define N 10 int fun(int* a, int* b, int n) {int* ...
最新文章
- linux scp远程复制命令使用
- linuxmessage日志消失_某工的centos7 启动了rsyslog之后,日志/var/log/messages等都不产生日志了,都是空的。求大神解决!...
- 重新复习基础草稿:可空类型
- 【Android 逆向】Android 逆向通用工具开发 ( 静态库项目中的网络操作核心类 CNetwork 分析 )
- python+appium+PyCharm==自动化测试APP环境
- ubuntu交叉编译x264报错:‘X264_VERSION’ undeclared(已解决)运行version.sh
- java idea 模块_使用IntelliJ IDEA搭建多maven模块JAVA项目
- Scala集合:reduce(化简)方法使用示例
- SAP Spartacus 电商云 UI Shipping Method 在单元测试环境下没有显示的问题
- python matplotlib画散点图_python matplotlib库绘制散点图例题解析
- oracle安装时配饰失败了,【求助】急!!!!oracle客户端安装时创建实例失败
- Python实现中文文档的简体与繁体互相转换
- 堡垒机全称是什么?是运维安全审计系统吗?
- 一次spinlock死锁故障的定位(太经典,收藏!)
- 如何做html链接,怎么做超链接,制作超链接的详细操作步骤
- 如何查看征信报告上的不良信息?
- UESTC_冬马党 CDOJ 882
- 扬帆际海—开网店怎么引流推广?
- cv.add cv.addWeighted 的区别
- android 虹软 例子,虹软离线人脸识别源码Android版本