一道作业题,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) + ",");
}
}
}
}
}
}