如果输出为0,如何打印数组?

时间:2020-01-12 02:30:05

标签: java arrays

我解决了这个问题,效果很好,但是有一个小问题,如果射线仅包含一个数字或相同数字,它将返回0,但我想要该数字。我的代码:

#!/bin/bash
source '----/catkin_ws/devel/setup.bash'
if [ $1 == 1 ]
then
    echo "$2"
    topiclist=$(rostopic echo /topic name)
    echo "$topiclist"
fi

代码赛跑者

public class RaySmallest
{
    public static int go(int[] ray)
    {
          int smallest = 0;
      for(int i =0;i<ray.length;i++) 
      {
            if(smallest > ray[i]) 
            {
                smallest = ray[i];
            }
      } 
      return smallest;
 }
}

就像第四行一样,我的代码给了我0,但我需要在那里输出为32767。

我需要这个答案。

class Main
{
  public static void main(String[] args)
  {
    RaySmallest rt = new RaySmallest();

    System.out.println( rt.go( new int[]{-99,1,2,3,4,5,6,7,8,9,10,12345} ) );
    System.out.println( rt.go( new int[]{10,9,8,7,6,5,4,3,2,1,-99} ) );
    System.out.println( rt.go( new int[]{10,20,30,40,50,-11818,40,30,20,10} ) );
    System.out.println( rt.go( new int[]{32767} ) );
    System.out.println( rt.go( new int[]{255,255} ) );
    System.out.println( rt.go( new int[]{9,10,-88,100,-555,1000} ) );
    System.out.println( rt.go( new int[]{10,10,10,11,456} ) );
    System.out.println( rt.go( new int[]{-111,1,2,3,9,11,20,30} ) );
    System.out.println( rt.go( new int[]{9,8,7,6,5,4,3,2,0,-2,-989} ) );
    System.out.println( rt.go( new int[]{12,15,18,21,23,1000} ) );
    System.out.println( rt.go( new int[]{250,19,17,15,13,11,10,9,6,3,2,1,-455} ) );
    System.out.println( rt.go( new int[]{9,10,-8,10000,-5000,1000} ) );

  }
}

谢谢

2 个答案:

答案 0 :(得分:1)

如果最小数字大于零,则实际上没有设置该数字,这就是为什么只有一个数字(可能小于零)时却没有最小数字的原因。

public static int go(int[] ray) {
    int smallest = ray.length > 0 ? ray[0] : -1;
    for (int value : ray) {
        if (smallest > value) {
            smallest = value;
        }
    }
    return smallest;
}

答案 1 :(得分:0)

好的,这是您代码的一部分:

 int smallest = 0;
  for(int i =0;i<ray.length;i++) 
  {
        if(smallest > ray[i]) 
        {
            smallest = ray[i];
        }
  } 
  return smallest;

基本上,这告诉我,最小为0。如果比较0> ray [i](第4行为32767),则进行比较。0不大于32767,因此最小仍等于0并返回0。 >

int smallest = 0;
int[] numArray = new int[ray.length];
 for(int i=0;i<ray.length;i++)
 { 
       if(ray.length == 1)
             return ray[i];
       if(smallest > ray[i])
             smallest = ray[i];
       if(ray[i] == ray[ray.length - 1] && i-ray.length > 0 && i==ray.length-2){
             int x = 0;
             for(int x=0;x<ray.length-1;x++){
                  if(ray[i] != ray[x])
                    break;
             }
             if(ray[i] == ray[x])
                  return ray[i];
       }

}
return smallest;

此解决方案应注意在数组中具有单个值,或者如果数组中的所有值都相等。