题目:
1.输入10个整数,将其中最小的属于第一个数调换,将最大的属于最后一个数对换。
分析:定义三个函数,输入10个数,处理函数,输出函数
package FIRST_Chapter;
import java.util.*;
/*
* 1.输入10个整数,将其中最小的属于第一个数调换,将最大的属于最后一个数对换。
分析:定义三个函数,输入10个数,处理函数,输出函数
*/
public class IOInverse{
public static void main(String[] Args){
ArrayList str= new ArrayList(10);
IOInverse ioi = new IOInverse();
ioi.input(str);
ioi.reverse(str);
ioi.output(str);
}
void input(ArrayList str){
Scanner sc = new Scanner(System.in);
for(int i=0; i<10;i++){
System.out.println("please input the "+(i+1)+"th data");
int a=0;
a=sc.nextInt();
str.add(i, a);
}
}
void output(ArrayList str){
for(int i=0; i<10;i++){
System.out.println(str.get(i));
}
}
void reverse(ArrayList str){
int temp_max=0,index=0,temp_inverse=0;
for(int j=0;j<10;j++){
if((int)(str.get(j))>=temp_max){
temp_max=(int)(str.get(j));
index=j;
}
}
System.out.println("ArrayList中最大的数是,下标为"+index+"的数"+(int)(str.get(index)));
temp_inverse=(int)(str.get(9));
str.set(9, (int)(str.get(index)));
str.set(index, temp_inverse);
}
}
输出结果:
please input the 1th data
1
please input the 2th data
1
please input the 3th data
1
please input the 4th data
1
please input the 5th data
1
please input the 6th data
3
please input the 7th data
4
please input the 8th data
1
please input the 9th data
1
please input the 10th data
1
ArrayList中最大的数是,下标为6的数4
1
1
1
1
1
3
1
1
1
4
题目
2.实现复数的加减乘除运算。
- 第一个Java文件
package FIRST_Chapter;
class Complex{
double real=0,image=0;
Complex(double real,double image){ //构造函数
this.real=real;
this.image=image;
}
Complex(){}
static Complex add(Complex a,Complex b){
Complex temp;
temp = new Complex(a.real+b.real,a.image+b.image);
return temp;
}
static Complex sub(Complex a,Complex b){
Complex temp;
temp = new Complex(a.real-b.real,a.image-b.image);
return temp;
}
static Complex multiply(Complex a,Complex b){
Complex temp;
temp = new Complex(a.real*b.real-a.image*b.image,a.real*b.image+a.image*b.real);
return temp;
}
static Complex division(Complex a,Complex b){
Complex temp= new Complex();
temp.real = (a.real*b.real+a.image*b.image)/(b.real*b.real+b.image*b.image);
temp.image= (a.image*b.real-a.real*b.image)/(b.real*b.real+b.image*b.image);
return temp;
}
void show(){
if(image<0)
{System.out.println("this complex is :"+real+image+"i");}
else if(image>0){System.out.println("this complex is :"+real+"+"+image+"i");}
else {System.out.println("this complex is :"+real);}
}
}
- 第二个Java文件(带主函数的测试文件)
package FIRST_Chapter;
import java.util.Scanner;
class test{
public static void main(String[] Args){
double real0,real1;
double image0,image1;
int i=1;
Scanner sc= new Scanner(System.in);
System.out.println("please input"+(i)+"th real part");
real0 = sc.nextDouble();
System.out.println("please input"+(i++)+"th imaginary part");
image0 = sc.nextDouble();
Complex a = new Complex(real0,image0);
a.show();
System.out.println("please input"+(i)+"th real part");
real1 = sc.nextDouble();
System.out.println("please input"+(i++)+"th imaginary part");
image1 = sc.nextDouble();
Complex b = new Complex(real1,image1);
b.show();
//sc.nextLine();//如果下面注释行想用nextLine的话,就要注意加上这句话
while(true){
System.out.println("what algorithm do you want a&b to make? add,sub,multiply,or division?");
String str=sc.next(); //注意这个地方不能用nextLine(),如果想用nextLine,上面注释语句就要转换成有效语句
if(str.equals("add")) {
System.out.println("the add result is :");
Complex.add(a,b).show();
}
else if(str.equals("sub")) {
System.out.println("the sub result is :");
Complex.sub(a,b).show();
}
else if(str.equals("multiply")) {
System.out.println("the multiply result is :");
Complex.multiply(a,b).show();
}
else if(str.equals("division")) {
if (b.real==0&&b.image==0) {
System.out.println("The divisor can't be 0");
continue;}
System.out.println("the division result is :");
Complex.division(a,b).show();
}
else {System.out.println("I don't know what you will do");}
}
}
}
- 运行结果:
please input1th real part
1
please input1th imaginary part
1
this complex is :1.0+1.0i
please input2th real part
0
please input2th imaginary part
0
this complex is :0.0
what algorithm do you want a&b to make? add,sub,multiply,or division?
division
The divisor can't be 0
what algorithm do you want a&b to make? add,sub,multiply,or division?
add
the add result is :
this complex is :1.0+1.0i
what algorithm do you want a&b to make? add,sub,multiply,or division?