解题思路:

            我们首先要设置一个输入的数,这是随机数的个数n,之后可以把n个数输入,之后我们要经过去重和排序之后才能达到目的。

            去重:如果我们直接用两个for循环来寻找重复的话,这样不是太好算,并且还会出错,我刚开始的时候就是用两个for循环做的,可是调试了半个小时也没有能调试出来,所以就换了一种想法,我们可以在输入的时候动手脚,我们首先定义一个for循环来输入temp,如果temp等于我们事先定义的数组里的任意一个数的话,那么c++,首先c应该被定义为0,这样的话我们不做任何处理,则数组中的这个循环数为0,但是如果都循环完并且c还是为0的话,那么证明在数组里没有该数,所以我们可以把这个数给赋值进入这个数组中,然后这样可以把数给输入完,当最后数被输入完之后你会发现相同的数会有0,所以排序之后0应该会在最前面我们只需要把除0以外的数输出就可以了。

            排序:使用冒泡排序

            输出:最后输出的话把除0之外的数给输出即可。

注意事项:

            1、可能会被题目的随机数给迷惑了,这个题的随机数就是你自己输入的数
            2、最后输出的时候不能再数的最后输出个空格。
参考代码:

        package itcast3;

import java.util.Scanner;
public class L1102 {
	static int n;
public static void main(String[] args) {
	Scanner m=new Scanner (System.in);
	 n=m.nextInt();
	int array[]=new int[n];
	int number=0;
	for(int i=0;i<array.length;i++)
	{
		int temp=m.nextInt();
		int flag=0;
		for(int k=0;k<array.length;k++)
		{
			if(temp==array[k])
				flag++;
		}
		if(flag==0)
		{
			array[i]=temp;
			number++;
		}			
	}
//for(int h=0;h<array.length;h++)
//	System.out.print(array[h]+" ");
	
	for(int i=0;i<array.length-1;i++)
		for(int k=i+1;k<array.length;k++)
			if(array[i]>array[k])
			{
				int temp=array[i];
				array[i]=array[k];
				array[k]=temp;
			}
//	System.out.println();
	System.out.println(number);
	for(int k=0;k<array.length-1;k++)
	if(array[k]!=0)
	System.out.print(array[k]+" ");
	System.out.println(array[array.length-1]);

}
}


点赞(2)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论