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

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个;

相关文章:

  • Linux中mutex机制
  • 如何在云端平台上建立 30,000 名用户的网页 MMO游戏环境-4 (OOM Killer 问题與雲平台!?)
  • AT_abc398_f [ABC398F] ABCBA
  • 哈尔滨工业大学DeepSeek公开课人工智能:从图灵测试到DeepSeek|附视频和PPT下载方法
  • 2025-03-22 学习记录--C/C++-C 库函数 - getchar()
  • [Android] ViiTor_Translate_2.2.5实时语音翻译软件,多国语言全解决
  • 数据库基础知识
  • React:React主流组件库对比
  • 分子动力学软件包Amber24的安装
  • miniconda安装保姆级教程|win11|深度学习环境配置
  • 颠覆者的困局:解构周鸿祎商业哲学中的“永恒战争”
  • python——UI自动化(1) selenium之介绍和环境配置
  • Bell-1量子计算机分析:开启量子计算2.0时代的创新引擎
  • 安装React开发者工具
  • Windows Once Power-v2.21.0+0-开源文件和文件夹批量重命名工具
  • Windows Server 2025 使用 IIS 搭建 ASP.NET 3.5 网站
  • 【STM32实物】基于STM32的扫地机器人/小车控制系统设计
  • 在线问卷调查|在线问卷调查系统|基于Spring Boot的在线问卷调查系统的设计与实现(源码+数据库+文档)
  • 电脑系统问题检查
  • 从像素到世界:自动驾驶视觉感知的坐标变换体系
  • 中国证券业协会修订发布《证券纠纷调解规则》
  • 新闻1+1丨城市,如何对青年更友好?
  • 鄂州交警通报致1死2伤车祸:女子操作不当引发,已被刑拘
  • 7月纽约举办“上海日”,上海大剧院舞剧《白蛇》连演三场
  • 盛和资源海外找稀土矿提速:拟超7亿元收购匹克,加快推动坦桑尼亚项目
  • 乌方:泽连斯基只接受与普京会谈,拒见其他俄代表