- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JAVA排序最大最小值
一、在一组无序的数中找出最大(最小值)的问题,用循环结构解决,假如键盘输入10个数找出最大值。先定义变量a用于存放最大值,每输入一个数据b就与a比较,如果b a,则a b,重复“输入——比较”的过程,直到10个数都输入、比较完,则a中就是10个数中的最大值。
import java.util.Scanner;
class A0205 public static void main String[] args int a 0,b;
Scanner scanner new Scanner System.in ;
for int i 1;i 10;i++ b scanner.nextInt ; if b a //输入1个数到a否。重复10次 a b;
System.out.println “最大值为:”+a ;//输出数 if b a ,不变。
如果在同一程序中同时求最大最小值,则再多设一个变量c存放最小值,在上例程序循环中再加入两条语句:
if b c c b;即可
完整程序如下:
import java.util.Scanner;
public class 最大最小值 public static void main String[] args int a 0,c 0,b;//c存放最小值
Scanner scanner new Scanner System.in ;
System.out.println 请输入10个数,数与数之间用空格隔开 ;
for int i 1;i 10;i++ //循环10次 b scanner.nextInt ; //输入1个数到b
if b a //b与a比较,较大的存入a中 a b;
if b c //b与c比较,较小的存入c中 c b;
System.out.println 最大值为:+a ;//输出最大值
System.out.println 最小值为:+c ;//输出最小值 If a0 a1 k a0;a0 a1;a1 k
变量k是用来临时交换a0,a1用的,内循环结束,最大值在a0
再用a1去和a2……a9依次比较,每比较一次,较大的放入a1中,关键的语句:
If a1 a2 k a1;a1 a2;a2 k 内循环结束,次大值在a1
……
上述过程用循环语句描述:
当外循环for int i 0;i 8;i++ 循环一次时,控制取一个数a0,内循环for int j i+1;j 9;j++ 控制取数a1……a9,每取出一个数就和a0比较,大的放入a0,所以用判断语句:,
If a0 a1 k a0;a0 a1;a1 k
内循环结束,a0中存放的是10个数中最大值
外循环又控制取一个数a1
内循环控制则取数a2……a9,每取出一个数就和a1比较,大的一定放入a1,所以用判断语句:,
If a1 a2 k a1;a1 a2;a2 k
内循环结束,a1中存放的是10个数中次大值
……
以此类推,每当外循环取一个值a i 时,内循环控制取数a i+1 ……a9,每取出一个数就和a i 比较,大的一定放入a i ,用判断语句:
If a i a i+1 k a i ;
a i a i+1 ;
a i+1 k
最后用循环打印a0……a9
主要程序如下:
int k;
int a[] new int[10];
Scanner scanner new Scanner System.in ;
for int i 0;i 9;i++
a[i] scanner.nextInt ; //输入10个数到数组A
for int i 0;i 8;i++ //从大到小排序10个数
for int j i+1;j 9;j++ if a[i] a[j] k a[i];a[i] a[j];a[j] k; for int i 0;i 9;i++ //从大到小输出数组A中
System.out.println a[i] ; //10个数 //程序最后输出改成从小到大输出数组A中10个数for int i 9;i 0;i-- System.out.println a[i] ;
if a[i] a[j] 改成:if a[i] a[j] ,即第一轮选最小的。第二轮选次小的……最后一轮是最大的.
先将a0取出,去和a1……a9依次比较,每比较一次,较小的放入a0中,关键的语句:
If a0 a1 k a0;a0 a1;a1 k
变量k是用来临时交换a0,a1用的
文档评论(0)