| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
ADSL如何秒变专线,公网IP盒子了解一下千里之行 始于足下
共有 694 人关注过本帖
标题:问题:从键盘中输入一些整数,输出不重复的整数
只看楼主 加入收藏
bug娃娃
Rank: 2
等 级:论坛游民
帖 子:90
专家分:27
注 册:2019-3-15
结帖率:94.74%
  已结贴   问题点数:18  回复次数:12   
问题:从键盘中输入一些整数,输出不重复的整数
public class Ping {
    public static void main(String[] args) {
        //打印不同的数
        Scanner input = new Scanner(System.in);
        System.out.print("Please input the number:");
        int number = input.nextInt();
        System.out.print("Please input some integers:");
        int[] a = new int[number];
        int[] b = new int[number];
        for(int i = 0;i < number;i++) {
            a[i] = input.nextInt();
        }
        int count = 0;   
        int k,w;
        for(k = 0;k < number;k++) {            
            for(w = 1;w <= number;w++) {
                if(a[k] != a[w]) {                    
                    b[count] = a[k];
                    count++;
                }               
            }
            /*
            if(count >= 1)
                count = 0;               
            else
                b[k] = a[k];
            */     
        }
        int len = b.length;
        for(int i = 0;i < count;i++) {
            System.out.print(b[i] + " ");
        }
        System.out.println();
        System.out.println(len);
        input.close();        
    }   
}
有错误,但是我觉得我的想法没有错
求解答
搜索更多相关主题的帖子: input System int number count 
2019-05-15 23:04
林月儿
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:湖南
等 级:版主
威 望:132
帖 子:1920
专家分:8443
注 册:2015-3-19
  得分:18 
   for(k = 0;k < number;k++) {            
            for(w = 1;w <= number;w++) {
这个w会不会下标越界啊?
你的想法是什么?

知命以下无敌
2019-05-15 23:46
bug娃娃
Rank: 2
等 级:论坛游民
帖 子:90
专家分:27
注 册:2019-3-15
  得分:0 
我就是想在k=0时,从w=1的时候开始一一遍历数组a中的数字,如果没有相同的数字,就把他装进b中,之后再输出来,可是老是说我a[k] != a[w]这里有错,可从这里看了很多遍了都觉得没有错
2019-05-15 23:59
bug娃娃
Rank: 2
等 级:论坛游民
帖 子:90
专家分:27
注 册:2019-3-15
  得分:0 
请问为什么w会下标越界啊,k增加一次,w都全部遍历一次
2019-05-16 00:03
bug娃娃
Rank: 2
等 级:论坛游民
帖 子:90
专家分:27
注 册:2019-3-15
  得分:0 
我是不是该k增加一次w,遍历一次过后把w重新赋为0喔?
2019-05-16 00:04
林月儿
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:湖南
等 级:版主
威 望:132
帖 子:1920
专家分:8443
注 册:2015-3-19
  得分:0 
count和w作为下标不应该大于number,你可以加判断,也可以像下面这样
边输入边标记
程序代码:
package com.huawei.test;

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

public class Test0515 {
    public static void main(String[] args) {
        // 输出不重复的整数
        Scanner input = new Scanner(System.in);
        System.out.print("Please input the number:");
        int number = input.nextInt();
        System.out.print("Please input some integers:");
        int[] numArr = new int[number];
        int[] countArr = new int[number];
        for(int i = 0;i < number;i++) {
            numArr[i] = input.nextInt();
            for(int j=0; j<i; j++) {
                // 当前输入值和历史输入值比较,重复的在重复位置上加标记
                if(numArr[j] == numArr[i]) {
                    countArr[i]=-1;
                    countArr[j]=-1;
                }
            }
        }
        input.close();
        for(int i = 0;i < number;i++) {
            if(countArr[i] >= 0) {
                System.out.println(numArr[i]);
            }
        }
    }
}

知命以下无敌
2019-05-16 00:05
bug娃娃
Rank: 2
等 级:论坛游民
帖 子:90
专家分:27
注 册:2019-3-15
  得分:0 
for(int i =0;i <number;i++){
   for(int w = i - 1;w > 0;k--){
         if(a[k] = = a[w]){
               for(int j = k+1;j <number;j++){
                         a[j-1]=a[j];
               }
          }
   }
}
这是用手机敲的思路,有可能有错误
2019-05-16 00:11
bug娃娃
Rank: 2
等 级:论坛游民
帖 子:90
专家分:27
注 册:2019-3-15
  得分:0 
哇,感觉困扰我的问题一下子就被解决了,不过姐姐,我还是想问一下,为什么要在循环里面用numArr[i] = input.next();这是一次性输入你的数字,还是i加一次再输一个数?
2019-05-16 00:20
林月儿
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:湖南
等 级:版主
威 望:132
帖 子:1920
专家分:8443
注 册:2015-3-19
  得分:0 
获取输入的流程跟你的一样,只是再细节上做了改动
每次循环都和前面输入的内容遍历判断了。

知命以下无敌
2019-05-16 00:22
bug娃娃
Rank: 2
等 级:论坛游民
帖 子:90
专家分:27
注 册:2019-3-15
  得分:0 
喔,这样哈,这下可以安心睡觉了
2019-05-16 00:24







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019427 second(s), 8 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved