日期:2014-05-20  浏览次数:20904 次

一道作业题,for loop相关(NetBeans)
要求用户输入3个不同的数,然后去掉中间数以后从小到大排列,再求这个数列的和。
比如说:
Enter a number: 10 
Enter a number: 4
Enter a number:1
1,2,3,5,6,7,8,9,10
51
(这个例子里,10,4,1这三个数都是用户输入的,下面的数列1,2,3,5,6,7,8,9,10跳过了用户输入的中间数4后从小到大排列,51是上面数列的和)

以下是我自己编的:

package abc;

import java.io.*;

public class abc {

  public static void main(String[] args) throws IOException {
  BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

  System.out.print("Enter a number: ");
  int a = Integer.parseInt(in.readLine());
  System.out.print("Enter a number: ");
  int b = Integer.parseInt(in.readLine());
  System.out.print("Enter a number: ");
  int c = Integer.parseInt(in.readLine());
  if (a > b) {
  if (b > c) {
  for (int i = 0; i <= (b - c - 1); i++) {
  System.out.print((i + c) + ",");
  }
  for (int j = 1; j <= (a - b); j++) {
  System.out.print((j + b) + ",");
  }
  }
  }
  }
}

我先假设了a最大,b中间,c最小,然后打算依次假设。可是这个输出的数列结果中,最后一个符号是逗号,按老师要求是不能出现逗号的(就像例子里的一样),我尝试用substring,可是一用就把所有逗号都去掉了。。。还有不知道怎样求这个数列之和。

小弟刚学java,老师又教的比较快,盼各位的帮助啊。

------解决方案--------------------
你最后一个写个判断的语句就行了如果是最后一个就只输出数字,不输出逗号。

求数列的和直接一个for循环就搞定了呀。

在你原有的基础上,增加一个变量int sum 然后在for循环里面把输出的值加起来就行了。
------解决方案--------------------
不好意思 ,没注意看题 ,原来是不能把中间的那个输出啊 ,改了一下

Java code
import java.io.*;

public class Abc {

  public static void main(String[] args) throws IOException {
      BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

      System.out.print("Enter a number: ");
      int a = Integer.parseInt(in.readLine());
      System.out.print("Enter a number: ");
      int b = Integer.parseInt(in.readLine());
      System.out.print("Enter a number: ");
      int c = Integer.parseInt(in.readLine());
  
    //你随便输入3个数 ,然后排好序 ,a最小 ,b中间 ,c最大
    int tmp  ;
    if (a > b){
        tmp = a ;
        a = b ;
        b = tmp ;
            
    }
    if (b > c) {
        tmp = b ;
        b = c;
        c = tmp; 
    }
    
    System.out.println(a + " " + b + " " + c) ;
    tmp = a ;
    a = c ;
    c = tmp ;
      String str = "" ;
      for (int i =  c  ; i<= a ; i++){
          if (i != b ){
            str = str + "," + i ;    
        }
      }
  
      System.out.println(str.substring(1)) ;
      System.out.println("-------") ;
    //你的方法只能是输入3个数 ,一定要从大到小
      if (a > b) {
          if (b > c) {
              for (int i = 0; i <= (b - c - 1); i++) {
                  System.out.print((i + c) + ",");
              }
              for (int j = 1; j <= (a - b); j++) {  
                  if (j == a-b){  
                      System.out.print((j + b));
                  }else{
                   System.out.print((j + b) + ",");
                }
              }
          }
      }
  }
}