主题:帮看看我这个比较3个数的程序
s32032033
[专家分:10] 发布于 2007-10-03 23:55:00
class com
{
public static int a,b,c,d;
public void compare(int a,int b)
{
while(a<b)
{c=b;
b=a;
a=c;}
}
}
class a1 extends com
{
public static void main(String[] args)
{
com cons;
cons=new com();
cons.a=10;
cons.b=20;
cons.c=15;
cons.d=0;
compare (a,b);
compare (a,c);
compare (b,c);
System.out.println("oo"+a,b,c);
}
}
我只想实现3个数的比较,输出的时候是按从大到小的顺序.请各位高手帮我修改修改呀.
回复列表 (共9个回复)
沙发
daifei4321 [专家分:2590] 发布于 2007-10-04 01:36:00
改了.学JAVA请试着用面向对象的编程方法:
class Com {
public static void main(String[] args) {
Com cons = new Com(10, 20, 15);
cons.output();
}
private int[] num = new int[3];
public Com(int a, int b, int c) {
num[0] = a; num[1] = b; num[2] = c;
compare(0, 1); compare(0, 2); compare(1, 2);
}
public void output() {
System.out.println(num[0] + "\t" + num[1] + "\t" + num[2]);
}
private void compare(int i1, int i2) {
if (num[i1] > num[i2]) {
int temp = num[i1];
num[i1] = num[i2];
num[i2] = temp;
}
}
}
板凳
wxpool [专家分:0] 发布于 2007-10-04 09:34:00
class com
{
public static int a,b,c,d;
public com compare()
{ com n=this;
int a=this.a;
int b=this.b;
int c=this.c;
int x=0;
if (a<b)
{x=a;a=b;b=x;}
if (a<c)
{x=a;a=c;c=x;}
if (b<c)
{x=b;b=c;c=x;}
n.a=a;n.b=b;n.c=c;
System.out.println("cc:"+a+" "+b+" "+c);
System.out.println("lo:"+this.a+" "+this.b+" "+this.c);
System.out.println("no:"+n.a+" "+n.b+" "+n.c);
return n;
}
}
class a1 extends com
{
public static void main(String[] args)
{
com cons=new com();
cons.a=10;
cons.b=20;
cons.c=15;
cons.d=0;
cons.compare();
//compare (a,c);
//compare (b,c);
System.out.println("oo:"+cons.a+" "+cons.b+" "+cons.c);
}
}
3 楼
haoboy0817 [专家分:880] 发布于 2007-10-04 10:07:00
[color=00FF00]看一下我给你编的程序
编译运行过程:
javac Compare.java
java Test num1 num2 num3[/color]
[size=4]class Compare
{
int x,y,z;
Compare(int x,int y,int z)
{
this.x=x;
this.y=y;
this.z=z;
}
void numCompare()
{
int []a=new int[3];
a[0]=x;
a[1]=y;
a[2]=z;
for(int i=0;i<a.length-1;i++)
{
for(int j=1;j<a.length;j++)
{
if(a[i]<a[j])
{
a[i]=a[i]+a[j];
a[j]=a[i]-a[j];
a[i]=a[i]-a[j];
}
}
}
for(int k=0;k<a.length;k++)
{
System.out.println(a[k]);
}
}
}
class Test
{
public static void main(String[] args)
{
int n=args.length;
if(n<3)
{
System.out.println("运行时附带3个参数是必要的");
}
else
{
int a1,a2,a3;
a1=Integer.parseInt(args[0]);
a2=Integer.parseInt(args[1]);
a3=Integer.parseInt(args[2]);
Compare cp=new Compare(a1,a2,a3);
cp.numCompare();
}
}
}[/size]
4 楼
penganlph [专家分:0] 发布于 2007-10-05 00:54:00
我给你一点提示,可以用这个三目运算符x=()?():()。可以减少很多步骤。
5 楼
litao616 [专家分:100] 发布于 2007-10-10 02:03:00
冒泡排序,选择排序,插入排序都可以实现。
这是冒泡排序
public class test {
public static void main(String [] args)
{
int [] a{8,5,7};
int temp;
for(int i=0;i<a.length;i++)
{
for(int j=0;j<a.length-i-1;j++)
{
if(a[j]<a[j+1])
{
temp = a[j+1];
a[j+1] = a[j];
a[j] = temp;
}
}
}
for(int i=0;i<a.length;i++)
{
System.out.println(a[i]);
}
6 楼
sjhlovejava [专家分:1690] 发布于 2007-10-11 02:37:00
public class Com {
Integer a,b,c;
public void compare(){
Integer temp1,temp2,temp3;
//获得最大值
temp1 = a>b?(a>c?a:c):(b>c?b:c);
//第二
temp2 = a>b?(a>c?(b>c?b:c):a) : (b>c?(a>c?a:c):b);
//最小
temp3 = a>b?(b>c?c:b):(a>c?c:a);
this.a = temp1;
this.b = temp2;
this.c = temp3;
}
}
public class A1 extends Com {
public static void main(String[] args) {
Com cons = new Com();
cons.a = 10;
cons.b = 20;
cons.c = 15;
cons.compare();
System.out.println("a = " + cons.a + ",b = " + cons.b + ",c = "+ cons.c );
}
}
7 楼
细金yeah [专家分:0] 发布于 2007-10-18 23:45:00
import java.io.*;
class Input{
int i;
int j;
int k;
public Input(int a,int b,int c){
i=a;
j=b;
k=c;
}
public void Pailie(){
int t;
if(i<j)
{
t=i;i=j;j=t;
}
if(i<k)
{
t=i;i=k;k=t;
}
if(j<k)
{
t=j;j=k;k=t;
}
System.out.println("从大到小排列为:"+i+" "+j+" "+k);
}
}
public class pailie{
public static void main(String args[]){
String s;
int a;
int b;
int c;
try
{BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入一个数:");
s=in.readLine();
a=Integer.parseInt(s);
System.out.print("请输入另一个数:");
s=in.readLine();
b=Integer.parseInt(s);
System.out.print("请输入另一个数:");
s=in.readLine();
c=Integer.parseInt(s);
Input f =new Input(a,b,c);
f.Bijiao();
}
catch (Exception e)
{System.out.println("输入数据有误");
}
}
}
8 楼
我要飞飞飞 [专家分:180] 发布于 2007-10-22 21:43:00
compare要通过对象调用 应该是 cons.compare()
你定义的类没有构造方法
9 楼
orangepigmm [专家分:10] 发布于 2007-10-25 14:40:00
public void compare(int a,int b)
{
while(a<b)
{c=b;
b=a;
a=c;}
}
不能交换3个数
只能交换两个数~
我来回复