当前位置: 代码迷 >> J2SE >> 一道作业题,for loop相关(NetBeans),该如何解决
  详细解决方案

一道作业题,for loop相关(NetBeans),该如何解决

热度:81   发布时间:2016-04-24 01:46:19.0
一道作业题,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) + ",");                }              }          }      }  }}
  相关解决方案