Java50道经典习题-程序28 排序算法】的更多相关文章

题目:对10个数进行排序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换, 下次类推,即用第二个元素与后8个进行比较,并进行交换. public class Prog28 { public static void main(String[] args) { int [] arr= {1,3,5,7,9,0,2,4,6,8}; //排序前 System.out.println("排序前"); for(int k=0;k<arr.length;k++) {…
题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件"stud"中. import java.io.*; public class Prog50{ //定义学生模型 String[] number = new String[5]; String[] name = new String[5]; float[][] grade = new float[5][3]; float[] sum…
题目:根据字符串内字符的ASCII码值对字符串数组进行排序.分析:字符串用ASCII码比较大小,规则是:1.比较首字母的ASCII码大小2.若是前面的字母相同,则比较之后的字母的ASCII码值3.若是一个字符串从首字母开始包含另一个字符串,则认为字符串长度较长的大:例 :ab > a备注:Java中String类有一个compareTo方法,该方法返回一个int类型的数据.其比较规则是:拿出字符串的第一个字符与参数的第一个字符进行比较,如果两者不等,比较结束,返回两者的ascii差,即字符串的第…
题目:输入3个数a,b,c,按大小顺序输出. import java.util.Scanner; public class Prog34 { public static void main(String[] args) { //键盘录入三个数 Scanner scan=new Scanner(System.in); System.out.println("请输入3个数:"); int a=scan.nextInt(); int b=scan.nextInt(); int c=scan.…
题目:一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程找出1000以内的所有完数. public class Prog9 { public static void main(String[] args) { int n=1000; compNumber(n); } //求完数 private static void compNumber(int n) { System.out.println(n+"以内的完数:"); for(int i…
题目:输出9*9口诀.分析:利用双重for循环进行输出,分行与列考虑,共9行9列,i控制行,j控制列. public class Prog16 { public static void main(String[] args) { for(int i=1;i<10;i++) { for(int j=1;j<i+1;j++) { System.out.print(j+"*"+i+"="+(j*i)+"\t");//使用转义字符使得输出更加…
题目:两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛的名单. a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单.分析:如果是人经过逻辑推理可以很快的得到结论.但是计算机处理此问题,不可能立即得出结论,而必须对每一种组合一一验证,找出符合条件的组合. 假设甲队a,b,c的对手分别是i,j,k i,j,k互不相等并且分别都是乙队x,y,z中的一人 利用三重for循环保证i,j,k互不相等 再将题设条件“a说他不和x比,…
题目:输入某年某月某日,判断这一天是这一年的第几天?分析:(1)以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天 (2)特殊情况,闰年2月份的天数是29天,否则是28天 import java.util.Scanner; public class Prog14 { public static void main(String[] args) { Scanner scan1=new Scanner(System.in); System.out.println("请输入年份:&…
题目:打印出杨辉三角形(要求打印出10行如下图)分析:          1         1 1        1 2 1      1 3 3 1    1 4 6 4 11 5 10 10 5 1%4d代表在4个空格内打印数字.我们选择4,因为我们知道10行杨辉三角形的最大数字的最大位数是3位数. public class Prog33 { public static void main(String[] args) { int rows = 10; for(int i =0;i<row…
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 分析:假如:1月1日有1对兔子,根据题目“从出生后第3个月起每个月都生一对兔子”即3月1日这对兔子产子一对由此可推出一对兔子从出生到产子的时间为每两个月一次,从第二对兔子开始,后续兔子的产子时间相同由此可得出以下的兔子数规律    兔子的规律为1,1,2,3,5,8,13,21.... 从第3月开始,每月兔子的总数等于上两月兔子总数之和 总数量  …