思路一:边输入边消除重复. 定义一个数组arr[0] 输入一个数看它在不在,在就不管了,不在就把数字加进去,
import java.util.Scanner;
/*
边输入边消除重复,
*/
class Class30_1{
public static void main(String args[]){
Scanner Sc = new Scanner(System.in);
int[] arr = new int[0];
System.out.print("请输入十个数字:");
for(int i = 0;i<10;i++){
int num = Sc.nextInt();
if(!isArrIsNum(arr,num)){ //判断在不在数组
arr=addnum(arr,num); //不在的话将num加入arr中
}
}
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
//判断num在不在数组arr
public static boolean isArrIsNum(int[] arr,int num){
for(int i =0;i<arr.length;i++){
if(arr[i]==num){
return true;
}
}
return false;
}
//数组扩容将num加入arr中
public static int[] addnum(int[] arr,int num){
int[] newarr = new int[arr.length+1];
for(int i =0;i<arr.length;i++){
newarr[i] = arr[i];
}
newarr[newarr.length-1] = num;
return newarr;
}
}
思路二:也是边输入边消除,不同的是这个数组长度给定且要计数组的有效个数,定义一个数组arr[10],输入一个数看它在不在,在就不管了,不在就把数字加进去,
/*
思路:
在输入数字的同时,进行重复的消除
步骤:
1.读入一个数字
2.判断该数字是否以存在于数组中
不存在 进去
存在 不管
*/
import java.util.Scanner;
class Class30_2{
public static void main(String args[]){
int[] arr = new int[10];
Scanner Sc = new Scanner(System.in);
System.out.print("请输入十个数字:"); //提示用户输入
int size = 0; //有效个数
for(int i = 0;i<10;i++){
int num = Sc.nextInt();
if(!isArrIsNum(arr, num)){
arr[size] =num; //将num加入到数组下标为size的位置
size++; //有效个数加1
}
}
for(int i =0;i<size;i++){ //输出的为数组的有效个数
System.out.print(arr[i]+" ");
}
}
//判断数字num在不在数组中
public static boolean isArrIsNum(int[] arr,int num){
for(int i =0;i<arr.length;i++){
if(arr[i]==num){
return true; //存在返回true
}
}
return false; //不存在返回false
}
}
代码如下:
import java.util.Scanner;
class Class31{
public static void main(String args[]){
Scanner Sc = new Scanner(System.in);
System.out.print("请输入数字");
int num1 = Sc.nextInt(); //输入的第一个数字为数组长度
int[] arr = new int[num1];
for(int i=0;i<num1;i++){ //遍历数组
int num = Sc.nextInt();
arr[i] = num;
}
if(isSorted(arr)){
System.out.println("The list is already sorted");
}else{
System.out.println("The list is no sorted");
}
}
//判断该数字列表是否排好序
public static boolean isSorted(int[] arr){
boolean flag = true; //默认它是排好序的
for(int i= 0;i<arr.length-1;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
flag = false; //没有排好序
}
}
}
return flag;
}
}
代码如下:
import java.util.*;
class Class32{
public static void main(String[] args){
//1.输入球的个数(路径的个数)和槽子的个数
Random random=new Random();
Scanner scanner=new Scanner(System.in);
System.out.print("Enter the number of balls to drop:");
int ballsCount=scanner.nextInt();
System.out.print("Enter the number of slots in the bean machine:");
int slotsCount=scanner.nextInt();
//2.定义槽子的数组
int[] slots=new int[slotsCount];
//3.计算路径后再统计
//路径的个数就是球的个数 路径随机生成几次 slotsCount-1次
for(int i=0;i<ballsCount;i++){
//4.生成路径
String path="";
for(int j=0;j<slotsCount-1;j++){
path=path+(random.nextInt(2)==0?"L":"R");
}
System.out.println(path);
int RCount=getR(path);
slots[RCount]++;
}
for(int i=0;i<slots.length;i++){
System.out.println(slots[i]);
}
int max=getMax(slots);
for(int i=max;i>0;i--){
for(int j=0;j<slots.length;j++){
if(i<=slots[j]){
System.out.print("O ");
}else{
System.out.print(" ");
}
}
System.out.println();
}
}
public static int getMax(int[] slots){
int max=slots[0];
for(int i=1;i<slots.length;i++){
if(slots[i]>max){
max=slots[i];
}
}
return max;
}
public static int getR(String path){
//"abcd"字符串本质上就是字符数组
//char[] values=new char[]{'a','b','c','d'}
//查看字符串中某个位置的内容
//LRLRLRLRLR
int RCount=0;
for(int i=0;i<path.length();i++){
if(path.charAt(i)=='R'){
RCount++;
}
}
return RCount;
}
}
代码如下:
import java.util.Scanner;
class Home30{
public static void main(String args[]){
Scanner Sc = new Scanner(System.in); //创建对象
System.out.print("请输入10个数字:");
double[] arr = new double[10]; //定义double数组
for(int i =0; i<10;i++){
double num = Sc.nextDouble();
arr[i] = num;
}
System.out.print("最小元素 "+arr[indexOfSmallestElement(arr)]+"最小下标 为"+indexOfSmallestElement(arr));
}
public static int indexOfSmallestElement(double[] arr){
int minIndex =0;
for(int i=0;i<arr.length;i++){
if(arr[i]<arr[minIndex]){
minIndex = i;
}
}
return minIndex; //返回最小下标
}
}
代码如下:
import java.util.Scanner;
class Home31{
public static void main(String args[]){
Scanner Sc = new Scanner(System.in);
System.out.println("请输入数字列表1:");
int num1 = Sc.nextInt(); //num1为数组长度
int[] arr1 = new int[num1];
for(int i=0;i<arr1.length;i++){
int num = Sc.nextInt();
arr1[i] = num;
}
System.out.println("请输入数字列表2:");
int num2 = Sc.nextInt(); //num2为数组长度
int[] arr2 = new int[num2];
for(int i=0;i<arr2.length;i++){
int num = Sc.nextInt();
arr2[i] = num;
}
if(equals(arr1,arr2)){
System.out.println("相同");
}else{
System.out.println("不同");
}
}
//判断两个数组是否相等
public static boolean equals(int[] arr1,int[] arr2){
for(int i =0;i<arr1.length;i++){
if(arr1[i]==arr2[i]){
return true;
}
}
return false;
}
}