//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;
}
}