当前位置: 首页 > article >正文

Java 输入1~100的整数,当读入负数时结束,统计输出每个数的数量

关键:
1.解决数组长度增加,同时要保留数组的元素值
2.统计相同元素值

原理:使用countArray[item]++

package com.MyJava;

import java.util.Arrays;
import java.util.Scanner;

public class Test {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int num = 0;
		int[] a = new int[0];
		int[] b = new int[0];
		int i = 0;
		
		while (num >= 0) {
			System.out.println("请输入0-100的整数:");
			num = scan.nextInt();
			// 如果输入了负数,立即break循环
			if (num < 0)
				break;
			// 数组a和b相互copy,就像球在左右手之间来回交换
			a = Arrays.copyOf(b, i + 1);
			a[i] = num;
			b = Arrays.copyOf(a, i + 1);
			System.out.print("当前输入的整数有:");
			for (int item : b) {
				System.out.print(item + " ");
			}
			System.out.println();
			i++;
		}
		System.out.println("输入了负数,已退出");

		// 统计0-100的整数个数
		int[] countArray = new int[101];
		// 统计每个元素的出现次数
		for (int item : a) {
			countArray[item]++;//数组a当中元素数值=item时,item++
		}
		for (int j = 0; j < countArray.length; j++) {
			if (countArray[j] > 0) {
				System.out.println("数字 " + j + " 出现了 " + countArray[j] + " 次");
			}
		}
	}
}

原理:用两个相同数组比较元素值后,相同的元素数值设为-1

package com.MyJava;

import java.util.Arrays;
import java.util.Scanner;

public class Test {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int num = 0;
		int[] a = new int[0];
		int[] b = new int[0];
		int i = 0;

		while (num >= 0) {
			System.out.println("请输入0-100的整数:");
			num = scan.nextInt();
			// 如果输入了负数,立即break循环
			if (num < 0)
				break;
			// 数组a和b相互copy,就像球在左右手之间来回交换
			a = Arrays.copyOf(b, i + 1);
			a[i] = num;
			b = Arrays.copyOf(a, i + 1);
			System.out.print("当前输入的整数有:");
			for (int item : b) {
				System.out.print(item + " ");
			}
			System.out.println();
			i++;
		}
		System.out.println("输入了负数,已退出");
		
		// 此时数组a=b,比较元素值,若相同则赋值为-1,就能排除重复计数
		for (int j = 0; j < a.length; j++) {
			int n = 0;
			for (int k = 0; k < b.length; k++) {
				if (a[j] == b[k]) {
					b[k] = -1;
					n++;
				}
			}
			if (n > 0)
				System.out.print(a[j] + ":" + n + "个;");
		}
	}
}

请输入0-100的整数:
1
当前输入的整数有:1
请输入0-100的整数:
2
当前输入的整数有:1 2
请输入0-100的整数:
2
当前输入的整数有:1 2 2
请输入0-100的整数:
3
当前输入的整数有:1 2 2 3
请输入0-100的整数:
4
当前输入的整数有:1 2 2 3 4
请输入0-100的整数:
4
当前输入的整数有:1 2 2 3 4 4
请输入0-100的整数:
4
当前输入的整数有:1 2 2 3 4 4 4
请输入0-100的整数:
0
当前输入的整数有:1 2 2 3 4 4 4 0
请输入0-100的整数:
0
当前输入的整数有:1 2 2 3 4 4 4 0 0
请输入0-100的整数:
-1
输入了负数,已退出
1:1个;2:2个;3:1个;4:3个;0:2个;


http://www.kler.cn/a/597677.html

相关文章:

  • Git Flow 分支管理策略
  • 运算符重载(关键字operator的使用)
  • 【STM32单片机】#2 GPIO输出
  • 鼠标拖拽实现DIV尺寸修改效果实现
  • 零基础本地部署 ComfyUI+Flux.1 模型!5 分钟搭建远程 AI 绘图服务器(保姆级教程)
  • 六西格玛遇上Python:统计学的高效实践场
  • 基于SpringBoot的图书借阅小程序+LW参考示例
  • Matplotlib完全指南:数据可视化从入门到实战
  • upload-labs靶场学习记录2
  • 再学:区块链基础与合约初探 EVM与GAS机制
  • java开发接口中,响应速度率成倍数提高的方法与策略
  • 基于BClinux8部署Ceph 19.2(squid)集群
  • SQL——创建临时表方法总结
  • 城市街拍人像自拍电影风格Lr调色教程,手机滤镜PS+Lightroom预设下载!
  • Opencv计算机视觉编程攻略-第一节 图像读取与基本处理
  • 百度SEO和必应SEO优化方法
  • 【css酷炫效果】纯CSS实现科技感网格背景
  • JVM运行时数据区内部结构难记?一个例子优化记忆
  • 摄影工作室预约管理系统基于Spring BootSSM
  • 校园自习室预约小程序(源码+部署教程)