Java习题总结 - 课内习题总结
第1题
编写程序,读取在1到 100 之间的整数,然后计算每个数出现的次数。 假定输入是以 0 结束的。下面是这个程序的一个运行示例:
Enter the integers between 1 and 100: 2 5 6 5 4 3 23 43 2 0
2 occurs 2 times
3 occurs 1 times
4 occurs 1 times
5 occurs 2 times
6 occurs 1 times
23 occurs 1 times
43 occurs 1 times
解题思路:
题中的数据——输入的1到 100 之间的整数,0表示结束
题目要求——计算每个数出现的次数
步骤:
1.提示输入数据
2.将数据存储在数组中
3.利用计数排序的思路,计算每个数字出现的次数
4.输出结果
代码:
import java.util.Scanner;
class Test01
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int[] a = new int[100];
int flag = 1;
System.out.print("请输入数字:");//提示输入
while(true){
flag=input.nextInt();//读取数据
if(flag == 0) break;//当数据为零时,数据读入结束
a[flag] = a[flag] + 1;//对应数组元素的值加1
}
for(int i = 0; i < 100; i++){
if(a[i] != 0) System.out.println(i + "出现" + a[i] + "次");//打印结果
}
}
}
第2题
编写一个程序,读人 10 个数并且显示互不相同的数(即一个数出现多次,但仅显示一次)。 (提示,读入一个数,如果它是一个新数,则将它存储在数组中。如果该数已经在数组中,则忽略它。 )输入之后,数组包含的都是不同的数。下面是这个程序的运行示例:
Enter ten numbers: 1 2 3 2 1 6 3 4 S 2
The number of distinct number is 6
The distinct numbers are: 1 2 3 6 4 5
解题思路:
题中的数据——输入的数列,数列一共有几个不重复的数,
题目要求——找出数列中不重复的数,计算一共有几个,并显示在屏幕上
步骤:
1.提示输入
2.每读入一个数据,都跟前面已存储的数据进行比较,如果存在,则比较下一个数,不存在则存存储这个数
3.输出
代码:
import java.util.Scanner;
class Test02
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int max = 0;
int[] a = new int[10];
for(int i = 0; i < 10; i++){
a[max] = input.nextInt();//读入一个数,存储在数列的末尾
max++;//数列的长度加1
for(int j = 0; j < max - 1; j++){
if(a[max - 1] == a[j]){//比较数列前面的数据与末尾的数据是否相同,
a[max - 1] = 0;//相同则末尾元素重置为0
max--;//数组长度减1