//1.考试成绩已经保存在数组scores中,依次为 89,23,64,91,119,52,73,-23 public class ScoreSortDemo { public static void main(String[] args){ int temp=0; int num=0; int []arr=new int[]{89,23,64,91,119,52,73,-23}; System.out.print("前三名分别是:"); for(int i=0;i<arr.length;i++){ for(int j=(i+1);j<arr.length;j++){ if(arr[i]<arr[j]){ temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } for(int i=0;i<arr.length;i++){ if(0<arr[i]&&100>arr[i]){ System.out.print(arr[i]+","); num++; }if(num==3){ break; } } } }
//2. 用数组来实现, 定义并初始化一个(1--100)保存100个数的数组,从第一个元素开始,依次数(1,2,3 循环往复),每次数到到3的元素淘汰掉.当到达数组 //末尾的时候再从头开始,直到最后剩余一个元素,写出算法,并输出最后保留的元素所在的最初的位置. public class ArrayDemo { public static void main(String[] args){ int num=0; int []arr=new int[100]; int []arr1=new int[100]; int []arr2=new int[100]; int j=1; int n=0; for(int i=0;i<arr.length;i++){ arr[i]=i+1; arr1[i]=arr[i]; num++; } for(;num!=1;){ for(int i=0;i<num;i++){ arr2[i]=arr1[i]; } n=0; for(int i=0;i<num;i++){ int m=(j%3); if(m!=0){ arr1[n]=arr2[i]; n++; }else{ } j++; if(i==(num-1)){ num=n; } } } System.out.println("最后剩下的数是:"+arr1[num]); for(int i=0;i<arr.length;i++){ if(arr1[n]==arr[i]){ System.out.println(arr1[num]+"最初的下标是:"+i); } } } }
//3. 用数组来实现对于一个整形数组, 分别通过冒泡排序和 快速排序,实现对于任意一个数组进行由小到大的排列。 public class ArraySortDemo1{ public static void main(String[] args){ int []arr=new int[]{12,90,67,45,78,2375,68,342,67,45,56,433}; sortDemo(arr); } public static void sortDemo(int []arr){ int temp=0; for(int i=0;i<arr.length-1;i++){ for(int j=(i+1);j<arr.length;j++){ if(arr[i]<arr[j]){ temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+","); } } }
public class QuickSortDemo{ public static void main(String[] args){ int []arr=new int[]{12,90,67,45,78,2375,68,342,67,45,56,433}; int max=arr.length-1; int mid=0; int min=0; QuickSortDemo2 myQuickSortDemo2=new QuickSortDemo2(arr,0,arr.length); myQuickSortDemo2.quickSort(arr,0,arr.length-1); for(int i=0;i<arr.length;i++) System.out.println(arr[i]+","); } QuickSortDemo2(int []arrParm,int minParm,int maxParm){ int []arr=arrParm; int min=minParm; int max=maxParm; } public static int getMid(int []arr,int min,int max){ if(min<max){ int temp=arr[min]; if(min<max){ if(min<max&&arr[max]>temp){ max--; } arr[min]=arr[max]; if(min<max&&arr[min]<temp){ min++; } arr[max]=arr[min]; } arr[min]=temp; } return min; } public static void quickSort(int []arr,int min,int max){ if(min<max){ int mid=getMid(arr,min,max); quickSort(arr,min,mid-1); quickSort(arr,mid+1,max); } } }
//5.题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 import java.util.Scanner; public class KindDmemo { @SuppressWarnings("deprecation") public static void main(String[] args) { //定义各类型字符的数目,初始化为0 int english = 0; int number = 0; int space = 0; int other = 0; @SuppressWarnings("resource") //从键盘输入字符并存入result中 Scanner scanner = new Scanner(System.in); System.out.println("请输入字符串"); String result = scanner.nextLine(); //将字符放入数组中 char[] stringArray = result.toCharArray(); //遍历数组、检测类型并相应增加成员变量的值 for(int i = 0;i < stringArray.length;i++){ if(Character.isDigit(stringArray[i])){ number++; } else if(Character.isLetter(stringArray[i])){ english++; } else if(Character.isSpace(stringArray[i])){ space++; } else{ other++; } } //输出结果 System.out.println("数字的数目:" + number); System.out.println("英文字母的数目:" + english); System.out.println("空格的数目:" + space); System.out.println("其他字符的数目:" + other); } }
/*6.题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%; 利润高于10万元,低于20万元时,低于10万元的部分按10%提成, 高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提 成5%; 40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时, 高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成, 从键盘输入当月利润,求应发放奖金总数? */ import java.util.Scanner; public class ProfitCountDemo { public static void main (String[]args){ double bonus; @SuppressWarnings("resource") //从键盘输入利润并接收 Scanner input =new Scanner (System.in); System.out.println("输入当月利润:"); double profit=input .nextDouble(); //进行判断 if(profit<=100000){ bonus=profit*0.1; }else if (profit<=200000){ bonus=10000+profit*0.075; }else if (profit<=400000){ bonus=17500+profit*0.05; }else if (profit<=600000){ bonus=profit*0.03; }else if (profit<=1000000){ bonus=profit*0.015; } else{ bonus=profit*0.01; } //输出结果 System.out.println("应发的奖金是"+bonus); } }
/*7.分别定义用户类,订单类,产品类,其中订单类至少要具有下订单的行为(入参为一个产品名称), 产品类中至少有一个成员变量为产品名称,至少有一个方法用来获取产品的名称。 用户类中持有一个产品类型的成员变量。 用户类中持有一个订单类型的成员变量。 在我们的用户类中定义main函数,当执行的时候,构造一个用户类的对象, 并且通过手段可以拿到产品成员变量中的产品名称,并且调用成员变量订单的对象,进行下单。 最后输出下单成功。 */ //用户类 class UserDemo { public static void main(String[] args) { //建立一个“产品”对象 Product product =new Product("辣条",8); //建立一个“订单”对象 Order order = new Order(); //建立一个“用户”对象 User user = new User(); //调用下订单的方法 order.placeOrder(product, user); } } //订单类 class Order { //构造方法 public Order() { } //“下单”方法 void placeOrder(Product product,User user){ System.out.println("商品名称:"+product.productName + "\n价格:" + product.price+"元"); System.out.println("恭喜你,下单成功!!!"); } } //产品 class Product { String productName = null; int price = 0; public Product(String productName,int price) { this.productName = productName; this.price = price; } //获取产品名称 public String getProductName() { return productName; } //设置产品名称 public void setProductName(String productName) { this.productName = productName; } }
原文:http://13355940.blog.51cto.com/13345940/1971876