一生一世陪你


私信TA

用户名:wodeshijie

访问量:23434

签 名:

我要好好地写代码..........

等  级
排  名 428
经  验 4926
参赛次数 1
文章发表 19
年  龄 10
在职情况 学生
学  校 河南农业大学
专  业

  自我简介:

我就是我,可能不是太好,但是我就是我,谁也不能取代........

解题思路:

            我们首先要设置一个输入的数,这是随机数的个数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]);

}
}


 

0.0分

2 人评分

  评论区

  • «
  • »