A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© myzhang 中级黑马   /  2014-8-27 08:42  /  1214 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 myzhang 于 2014-8-29 09:09 编辑

创建一个长度为10的数组,并为其初始化好10个整数,从键盘输入一个整数,判断该整数是否在数组中存在,若不存在,则给出相应提示, 如果存在,则删除该数,有几个删除几个。下面是我写的代码,遇到问题了:public class Registe {
        public static void main(String[] args) {
                int [ ] num= {0,1,2,3,4,5,6,7,8,9};
                System.out.println("请输入一个整数:");
                Scanner sc = new Scanner(System.in);
                num= sc.nextInt();
                if(sc=num){
                        System.out.println("该数组不存在!");        
                }else{        
                }        
        }
}请大神指教一下,谢谢!

点评

我想的简单了。  发表于 2014-8-29 09:15
谢谢大家了。。。  发表于 2014-8-29 09:08
非常棒!!  发表于 2014-8-29 09:07

12 个回复

倒序浏览
  1. import java.util.Scanner;
  2. class  Registe
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 int[] num = {0,1,2,3,4,5,6,7,8,9};
  7.                 System.out.print("请输入一个整数:");
  8.         Scanner sc = new Scanner(System.in);
  9.                
  10.                 while(sc.hasNextInt()){ // 判断输入的是否是整数
  11.                         int i = sc.nextInt() ;        // 接收整数
  12.                         if(i>=0 && i<10){
  13.                                 System.out.println(" 恭喜,该元素在数组中!") ;
  14.                                 System.out.println("删除该元素后的新数组:") ;
  15.                                 for(int x=0; x<num.length;x++) {
  16.                                         if(i!=num[x]){
  17.                                                 System.out.println(num[x]);
  18.                                         }
  19.                                 }
  20.                         }else{
  21.                                 System.out.println("该元素不存在!");
  22.                         }
  23.                 }

  24.         }
  25. }
复制代码

QQ截图20140827120708.png (3.19 KB, 下载次数: 4)

QQ截图20140827120708.png
回复 使用道具 举报 1 0
  1. package com.itheima;

  2. import java.util.Scanner;

  3. public class Registe {

  4.         public static void main(String[] args) {

  5.                 numFunction();
  6.         }

  7.         public static void numFunction() {
  8.                 int[] arrs = {10,46,448,22,66,77,20,50,11,1,0,45,33};
  9.                 bubbleSort(arrs);
  10.                 System.out.println("输入要查找的数值");
  11.                 Scanner num = new Scanner(System.in);
  12.                 int reNum = halfSearch(arrs,num.nextInt());
  13.                 if(reNum>0)
  14.                         System.out.println("找到数值 " + arrs[reNum]);
  15.                 else
  16.                         System.out.println("数值不存在");       
  17.         }
  18.        
  19.         private static int halfSearch(int[] arrs, int key){
  20.                 int max = arrs.length-1,
  21.                                 min = 0,
  22.                                 mid;
  23.                 while(min<=max){
  24.                         mid = (max + min) >> 1;               
  25.                         if(key>arrs[mid])
  26.                                 min = mid+1;
  27.                         else if(key<arrs[mid])
  28.                                 max = mid-1;
  29.                         else
  30.                                 return mid;                                               
  31.                 }
  32.                 return -1;               
  33.         }
  34.        
  35.         private static void bubbleSort(int[] arrs) {
  36.                 for (int x = 0; x < arrs.length; x++) {
  37.                         for (int y = 0; y < arrs.length - x - 1; y++) {
  38.                                 if (arrs[y] > arrs[y + 1]) {
  39.                                         int temp = arrs[y];
  40.                                         arrs[y] = arrs[y + 1];
  41.                                         arrs[y + 1] = temp;
  42.                                 }
  43.                         }
  44.                 }
  45.         }
  46. }
复制代码
回复 使用道具 举报 1 0
这里出错了“ num= sc.nextInt();”,num引用一个数组对象 {0,1,2,3,4,5,6,7,8,9},"num=sc.nextInt()"使数组对象失去引用了,应该另声明一个变量如:int in = sc.nextInt(),然后遍历数组的每个元素与in变量进行等值判断,若相等则删除数组元素
回复 使用道具 举报
貌似很高大上
回复 使用道具 举报
huangxuanheng 来自手机 中级黑马 2014-8-27 17:30:02
地板
搞那么复杂,直接遍历是否有等于输入不就OK了吗
回复 使用道具 举报
gmz158 中级黑马 2014-8-27 18:34:59
7#
路过看看
            
回复 使用道具 举报
{:2_31:}{:2_31:}{:2_31:}{:2_31:}{:2_31:}{:2_31:}
回复 使用道具 举报
个人经验哈:
      1.首先num是个数组名,而输入的数应该是个整数,两个的类型不一样,建议再定义一个整型变量temp;
      2.其次呢,
               /*System.out.println("请输入一个整数:");
                *Scanner sc = new Scanner(System.in);
                *num= sc.nextInt();
               */
          应该是
               Scanner sc = new Scanner(System.in);
               System.out.println("请输入一个整数:");
              int temp= sc.nextInt();
           这个的原因我也不知道,只是自己编程的时候遇到的。路过的大神小仙还望帮忙指条明路,O(∩_∩)O谢谢!
          最后哈,个人觉得你应该写得出来遇见相同数全部删除的代码,自己尝试一下。加油!
回复 使用道具 举报 1 0
孙雯 发表于 2014-8-27 21:40
个人经验哈:
      1.首先num是个数组名,而输入的数应该是个整数,两个的类型不一样,建议再定义一个整型 ...

谢谢给的经验,受教了:handshake
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马