《啊哈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语言练习】四个整数中找出最大的一个相关推荐

  1. 如何在10亿个整数中找出前1000个最大的数?

    作者:vincent-duan,专注 Java,沉迷开源,架构师社区合伙人! 面试题目:如何在10亿个整数中找出前1000个最大的数. 我们知道排序算法有很多: 冒泡算法:通过两层for循环,外层第一 ...

  2. 2.5亿个整数中找出不重复的整数

    问题描述:在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数. 思路:采用2-Bitmap(每个数分配2bit,00表示不存在,01表示出现一次,10表示多次,11无意义)进行,共 ...

  3. 如何在10亿个整数中找出前1000个最大的数(TopN算法)

    面试题目:如何在10亿个整数中找出前1000个最大的数. 我们知道排序算法有很多: 冒泡算法:通过两层for循环,外层第一次循环找到数组中最大的元素放置在倒数第一个位置,第二次循环找到第二大的元素放置 ...

  4. 一道笔试题:从1亿个整数中找出最大的一万个

    今天看到一篇赖永浩大牛的博客,由一道笔试题目谈算法优化.http://blog.csdn.net/lanphaday/archive/2008/12/19/3547776.aspx. 题目原题是从10 ...

  5. 在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数

    方案1:采用2-Bitmap(每个数分配2bit,00表示不存在,01表示出现一次,10表示多次,11无意义)进行,共需内存2^32 * 2 bit=1 GB内存,还可以接受.然后扫描这2.5亿个整数 ...

  6. c语言从4个整数中找最小的数,编程之法:面试和算法心得(寻找最小的k个数)...

    内容全部来自编程之法:面试和算法心得一书,实现是自己写的使用的是java 题目描述 输入n个整数,输出其中最小的k个. 分析与解法 解法一 要求一个序列中最小的k个数,按照惯有的思维方式,则是先对这个 ...

  7. 1亿个数中找出最大的100个数(top K问题)

    如何在1亿个数中找出最大的100个数(top K问题) ​ 最容易想到的方法是将数据全部排序,然后在排序后的集合中进行查找,最快的排序算法的时间复杂度一般为O(nlogn),如快速排序.但是在32位的 ...

  8. 大数据面试题——如何在大量的数据中找出不重复的数

    问题描述: 在2.5亿个整数中找出不重复的数,注意,内存不足以容纳2.5亿个整数. 分析解读: 方法一:分治法 采用hash的方法,把这2.5亿个数划分到更小的文件中,从而保证每个文件的大小不超过可用 ...

  9. 【c语言】在一个一维整数组中找出其中最大的数及其下标

    //在一个一维整型数组中找出其中最大的数及其下标 #include <stdio.h> #define N 10 int fun(int* a, int* b, int n) {int* ...

最新文章

  1. linux scp远程复制命令使用
  2. linuxmessage日志消失_某工的centos7 启动了rsyslog之后,日志/var/log/messages等都不产生日志了,都是空的。求大神解决!...
  3. 重新复习基础草稿:可空类型
  4. 【Android 逆向】Android 逆向通用工具开发 ( 静态库项目中的网络操作核心类 CNetwork 分析 )
  5. python+appium+PyCharm==自动化测试APP环境
  6. ubuntu交叉编译x264报错:‘X264_VERSION’ undeclared(已解决)运行version.sh
  7. java idea 模块_使用IntelliJ IDEA搭建多maven模块JAVA项目
  8. Scala集合:reduce(化简)方法使用示例
  9. SAP Spartacus 电商云 UI Shipping Method 在单元测试环境下没有显示的问题
  10. python matplotlib画散点图_python matplotlib库绘制散点图例题解析
  11. oracle安装时配饰失败了,【求助】急!!!!oracle客户端安装时创建实例失败
  12. Python实现中文文档的简体与繁体互相转换
  13. 堡垒机全称是什么?是运维安全审计系统吗?
  14. 一次spinlock死锁故障的定位(太经典,收藏!)
  15. 如何做html链接,怎么做超链接,制作超链接的详细操作步骤
  16. 如何查看征信报告上的不良信息?
  17. UESTC_冬马党 CDOJ 882
  18. 扬帆际海—开网店怎么引流推广?
  19. cv.add cv.addWeighted 的区别
  20. android 虹软 例子,虹软离线人脸识别源码Android版本

热门文章

  1. 碧空之个服务器维护,魔兽世界怀旧服:灰烬使者禁止转入,碧空也是如此,转服该去哪?...
  2. 【调剂】河南理工大学招收计算机交叉矿业方向的同学
  3. 计算机网络-2020年期末复习提纲-概念类
  4. HTML中实现VLC播放器并对播放器进行控制
  5. 网站收录量,反链,关键词排名,权重相关问题
  6. 广播组网-无线数据传输(学习记录)
  7. window 双网卡配置
  8. 怪物猎人x服务器维护,《怪物猎人:崛起》太火爆 任天堂服务器紧急维护
  9. word2010无法初始化VisualBasic
  10. 经典的一个GIS学习定位帖(转)