题目内容:
完善以下程序,利用swap函数,完成数字按从小到大的顺序输出。例如输入5 4 3 输出3,4,5。
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
//创建Scanner对象
//System.in表示标准化输入,也就是键盘输入
Scanner sc = new Scanner(System.in);
//利用hasNextXXX()判断是否还有下一输入项
int a = 0;
int b = 0;
int c = 0;
if (sc.hasNext()) {
a = sc.nextInt();
}
if (sc.hasNext()) {
b = sc.nextInt();
}
if (sc.hasNext()) {
c = sc.nextInt();
}
if(a==0 || b==0 || c==0)
{
System.out.println("输入不能为0");
System.exit(-1);
}
MyNumber obj1, obj2, obj3;
//从这里开始,基于swap函数,完善你的程序
//
//
//
//程序结束
}
public static void swap(MyNumber m, MyNumber n)
{
if(m.num > n.num)
{
int s = m.num;
m.num = n.num;
n.num = s;
}
}
}
class MyNumber
{
int num;
}
输入格式:
输入3个数字。
输出格式:
数字从小到大排列
输入样例:
5
4
3
输出样例:
3,4,5
分析:其实很简单swap交换方法已经写好,就差比较数字大小,三个if,如果A>B,则交换。。。
用这个过程体验Java的值传递还是很好的!!!
具体代码:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
//创建Scanner对象
//System.in表示标准化输入,也就是键盘输入
//System.out.println("输入不能为0");
Scanner sc = new Scanner(System.in);
//利用hasNextXXX()判断是否还有下一输入项
int a = 0;
int b = 0;
int c = 0;
if (sc.hasNext()) {
a = sc.nextInt();
}
if (sc.hasNext()) {
b = sc.nextInt();
}
if (sc.hasNext()) {
c = sc.nextInt();
}
if(a==0 || b==0 || c==0)
{
System.out.println("输入不能为0");
System.exit(-1);
}
sc.close();
MyNumber obj1, obj2, obj3;
//从这里开始,基于swap函数,完善你的程序
//
//
//
//程序结束
obj1 = new MyNumber(a);obj2 = new MyNumber(b);obj3 = new MyNumber(c);
if(obj1.num>obj2.num) {
swap(obj1,obj2);
}
if(obj1.num>obj3.num) {
swap(obj1,obj3);
}
if(obj2.num>obj3.num) {
swap(obj2,obj3);
}
System.out.println(obj1.num+","+obj2.num+","+obj3.num);
}
public static void swap(MyNumber m, MyNumber n)
{
if(m.num > n.num)
{
int s = m.num;
m.num = n.num;
n.num = s;
}
}
}
class MyNumber
{
int num;
MyNumber(){};
MyNumber(int num){
this.num = num;}
}
Over!!自己学的一塌糊涂!!!