描述: 输入10个数,并按由小到大排序输出,然后再输入一个数据,插入已排好序的数组中,插入后仍然是有小到大排序。
package px;
import java.util.Scanner;
public class min_max {
public static double[] fun1(double a[]){
for(int i=1;i<a.length-1;i++){
for(int j=0;j<a.length-1-i;j++){
if(a[j]>a[j+1]){
double temp;
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(int i=0;i<10;i++){
System.out.print(a[i]+"\t\t");
}
System.out.println();
return a;
}
public static double[] fun2(double a[],double x){
double temp;
int flag=0;
for(int i=0;i<a.length-1;i++){
if(a[i]>x){
temp=a[i];
a[i]=x;
for(int j=a.length;j>i+1;j--){
a[j]=a[j-1];
}
a[i+1]=temp;
flag=1;
}
}
if (flag ==0) a[a.length-1]=x;
return a;
}
public static void main(String[] args) {
double a[]=new double[11];
double x;
System.out.println("请输入这组数据:");
Scanner cin=new Scanner(System.in);
for(int i=0;i<10;i++)
a[i]=cin.nextDouble();
System.out.println("这组数据由小到大排好序之后为;");
a=fun1(a);
System.out.println("请输入要插入的数据:");
x= cin.nextDouble();
a=fun2(a,x);
for(int i=0;i<11;i++)
{
System.out.print(a[i]+"\t\t");
}
}
}
描述1: 有N个数据,存放在数组A中,现输入一个数据x,要在数组A中y数据第一次出现的位置后,插入数据x。如果数据y不在数组A中,则将x插入到数组A的首位置。
描述2: 有N个数据,存放在数组A中,现输入一个数据x,要在数组A中y数据第一次出现的位置后,插入数据x。如果数据y不在数组A中,则将x插入到数组A中的最后位置。
描述3: 有N个数据,存放在数组A中,现输入一个数据x,要在数组A中删除第一次出现的数据x。如果删除数组A中的所有数据x,如何实现呢?
描述1: 有N个数据,存放在数组A中,现输入一个数据x,要在数组A中y数据第一次出现的位置后,插入数据x。如果数据y不在数组A中,则将x插入到数组A的首位置。
package df;
import java.util.Scanner;
public class df {
public static int exist(double a[],double y){
int x = 0;
for(int i=0;i<a.length;i++){
if(y==a[i]) {
x=i;break;
}//如果Y存在数组中,则返回下标i,不存在数组中则返回0
else if(y!=a[i]&&i==a.length-1) {
x=-1;
}
}
return x;
}
public static int fun(double a[],int b,double x){
//数组 数据y存在返回下标i,否则返回0 要插入的数据x
while(b>=0){
if(b!=a.length-2){
double temp=a[b+1];
a[b+1]=x;
for(int j=a.length-1;j>b+1;j--){
a[j]=a[j-1];
}
a[b+1]=temp;
}
else if(b==a.length-2){
a[a.length-1]=x;
}
for(int i=0;i<a.length+1;i++){
System.out.print(a[i]+" ");
}
System.out.println();
}
while (b==-1){
for(int j= a.length-1;j>0;j--){
a[j]=a[j-1];
}
a[0]=x;
for(int i=0;i<a.length+1;i++){
System.out.print(a[i]+" ");
}
System.out.println();
}
return b;
}
public static void main(String[] args) {
int n;
double x,y;
Scanner cin=new Scanner(System.in);
System.out.println("请输入这组数据的个数:");
n=cin.nextInt();
double a[]=new double[n+1];
System.out.println("输入这组数据:");
for(int i=0;i<n;i++){
a[i]= cin.nextDouble();
}
System.out.println("请输入数据y:");
y=cin.nextDouble();
System.out.println("数据y存在数组中返回i,否则返回0");
int b=exist(a,y);
System.out.println("数据y存在数组中的结果为:"+b);
System.out.println("请输入要插入的数据x:");
x=cin.nextDouble();
System.out.println("插入后数组为:");
fun(a,b,x);
}
}
描述2: 有N个数据,存放在数组A中,现输入一个数据x,要在数组A中y数据第一次出现的位置后,插入数据x。如果数据y不在数组A中,则将x插入到数组A中的最后位置。
package df;
import java.util.Scanner;
public class df {
public static int exist(double a[],double y){
int x = 0;
for(int i=0;i<a.length;i++){
if(y==a[i]) {
x=i;break;
}//如果Y存在数组中,则返回下标i,不存在数组中则返回0
else if(y!=a[i]&&i==a.length-1) {
x=-1;
}
}
return x;
}
public static int fun(double a[],int b,double x){
//数组 数据y存在返回下标i,否则返回0 要插入的数据x
while(b>=0){
if(b!=a.length-2){
double temp=a[b+1];
a[b+1]=x;
for(int j=a.length-1;j>b+1;j--){
a[j]=a[j-1];
}
a[b+1]=temp;
}
else if(b==a.length-2){
a[a.length-1]=x;
}
for(int i=0;i<a.length+1;i++){
System.out.print(a[i]+" ");
}
System.out.println();
}
while (b==-1){
//插入到数组首位置
/* for(int j= a.length-1;j>0;j--){
a[j]=a[j-1];
}
a[0]=x;*/
//插入到数组末位置
a[a.length-1]=x;
for(int i=0;i<a.length+1;i++){
System.out.print(a[i]+" ");
}
System.out.println();
}
return b;
}
public static void main(String[] args) {
int n;
double x,y;
Scanner cin=new Scanner(System.in);
System.out.println("请输入这组数据的个数:");
n=cin.nextInt();
double a[]=new double[n+1];
System.out.println("输入这组数据:");
for(int i=0;i<n;i++){
a[i]= cin.nextDouble();
}
System.out.println("请输入数据y:");
y=cin.nextDouble();
System.out.println("数据y存在数组中返回i,否则返回0");
int b=exist(a,y);
System.out.println("数据y存在数组中的结果为:"+b);
System.out.println("请输入要插入的数据x:");
x=cin.nextDouble();
System.out.println("插入后数组为:");
fun(a,b,x);
}
}
描述3: 有N个数据,存放在数组A中,现输入一个数据x,要在数组A中删除第一次出现的数据x。如果删除数组A中的所有数据x,如何实现呢?
package arr_del;
import java.util.Scanner;
public class first {
public static int exist(double a[],double y){
int x = 0;
for(int i=0;i<a.length;i++){
if(y==a[i]) {
x=i;break;
}//如果Y存在数组中,则返回下标i,不存在数组中则返回0
else if(y!=a[i]&&i==a.length-1) {
x=-1;
}
}
return x;
}
public static int fun(double a[],int b){
//数组 数据y存在返回下标i,否则返回0
while(b>=0){
for(int i=b;i<a.length-1;i++){
a[i]=a[i+1];
}
System.out.println("删除数据x后,数组为:");
for(int i=0;i<a.length-1;i++){
System.out.print(a[i]+" ");
}
System.out.println();
break;
}
while (b==-1){
System.out.println("数据x不存在数组中,无法进行删除操作");
break;
}
return b;
}
public static void main(String[] args) {
int n;
double x;
System.out.println("请输入数组的长度:");
Scanner cin=new Scanner(System.in);
n=cin.nextInt();
double a[]=new double[n];
System.out.println("请输入数组元素:");
for(int i=0;i<a.length;i++){
a[i]= cin.nextDouble();
}
System.out.println("请输入数据x:");
x=cin.nextDouble();
int b=exist(a,x);
fun(a,b);
}
}
如有错误或其他问题,评论区留言或者私聊,感谢~~