a=b.divide(c); a.print(); } }--------------------Configuration: <Default>-------------------- E:\JAVA2 SDK\myJava\exe6_3.java:2: package Rational does not exist import Rational.java; ^ E:\JAVA2 SDK\myJava\exe6_3.java:21: add(Rational,Rational) in Rational cannot be applied to (Rational) a=b.add(c); ^ E:\JAVA2 SDK\myJava\exe6_3.java:24: subtract(Rational,Rational) in Rational cannot be applied to (Rational) a=b.subtract(c); ^ E:\JAVA2 SDK\myJava\exe6_3.java:27: multiply(Rational,Rational) in Rational cannot be applied to (Rational) a=b.multiply(c); ^ E:\JAVA2 SDK\myJava\exe6_3.java:30: divide(Rational,Rational) in Rational cannot be applied to (Rational) a=b.divide(c); ^ E:\JAVA2 SDK\myJava\Rational.java:98: possible loss of precision found : double required: int int temp1=(int)temp*Math.pow(10,n); ^ 6 errorsProcess completed.
现在编译通过了谢谢 可是输出不对啊,看了半天了。public class Rational { private int numerator; private int denominator;
public Rational() { numerator=1; denominator=1; }
public Rational(int n,int d) { numerator=n; denominator=d; reduce(); }
public Rational(Rational r) //copy constructor { numerator=r.numerator; denominator=r.denominator; }
public void reduce() { int larger; if (numerator>=denominator) { larger=numerator; } else { larger=denominator; } for (int i=1;i<=larger;i++) { if (numerator%i==0&&denominator%i==0) { numerator/=i; denominator/=i; } } }
public Rational add(Rational a,Rational b) { int temp1,temp2,temp3,temp4; temp1=a.numerator*b.denominator; temp2=a.denominator*b.denominator; temp3=b.numerator*a.denominator; temp4=b.denominator*a.denominator;
numerator=temp1+temp3; denominator=temp1;
reduce(); return this; }
public Rational subtract(Rational a,Rational b) { int temp1,temp2,temp3,temp4; temp1=a.numerator*b.denominator; temp2=a.denominator*b.denominator; temp3=b.numerator*a.denominator; temp4=b.denominator*a.denominator;
numerator=temp1-temp3; denominator=temp1;
reduce(); return this; }
public Rational multiply(Rational a,Rational b) { numerator=a.numerator*b.numerator; denominator=a.denominator*b.denominator; reduce(); return this; }
public Rational divide(Rational a,Rational b) { numerator=a.numerator*b.denominator; denominator=a.denominator*b.numerator; reduce(); return this; }
public void print() { System.out.print(numerator+"/"+denominator); System.out.flush(); }
public void floatPrint(int n) //n is precision { double temp=(double)numerator/denominator; int temp1=(int)temp*Math.pow(10,n); temp=(double)temp1/Math.pow(10,n); System.out.print(Double.toString(temp)); System.out.flush(); } }//test driver of class Rational import java.io.*;public class exe6_3 { public static void main(String args[]) throws IOException { Rational a; a=new Rational(); a.print();
System.out.println("The input number is:"+inNumber); System.out.println("The int part is:"+intPart); System.out.println("The decimal part is:"+decimalPart); } }
import java.awt.*;
import java.applet.Applet;public class exe6_3 extends Applet
{
Rational a();
a.print();
Rational b(3,4);
b.print();
b.floatPrint(1);
Rational c(2,5);
a=b.add(c);
a.print();
a=b.subtract(c);
a.print();
a=b.multiply(c);
a.print();
a=b.divide(c);
a.print();
}这样??
还是不行啊!!
import java.io.*;public class exe6_3
{
public static void main(String args[]) throws IOException
{
Rational a;
a=new Rational();
a.print();
Rational b;
b=new Rational(6,8);
b.print();
b.floatPrint(1);
Rational c;
c=new Rational(2,5);
a=b.add(c);
a.print();
a=b.subtract(c);
a.print();
a=b.multiply(c);
a.print();
a=b.divide(c);
a.print();
}
}--------------------Configuration: <Default>--------------------
E:\JAVA2 SDK\myJava\exe6_3.java:2: package Rational does not exist
import Rational.java;
^
E:\JAVA2 SDK\myJava\exe6_3.java:21: add(Rational,Rational) in Rational cannot be applied to (Rational)
a=b.add(c);
^
E:\JAVA2 SDK\myJava\exe6_3.java:24: subtract(Rational,Rational) in Rational cannot be applied to (Rational)
a=b.subtract(c);
^
E:\JAVA2 SDK\myJava\exe6_3.java:27: multiply(Rational,Rational) in Rational cannot be applied to (Rational)
a=b.multiply(c);
^
E:\JAVA2 SDK\myJava\exe6_3.java:30: divide(Rational,Rational) in Rational cannot be applied to (Rational)
a=b.divide(c);
^
E:\JAVA2 SDK\myJava\Rational.java:98: possible loss of precision
found : double
required: int
int temp1=(int)temp*Math.pow(10,n);
^
6 errorsProcess completed.
这句Rational a();
和这句Rational b(3,4);是什么意思?
Rational a();
Rational b(3,4);是C++养成的习惯...
可是输出不对啊,看了半天了。public class Rational
{
private int numerator;
private int denominator;
public Rational()
{
numerator=1; denominator=1;
}
public Rational(int n,int d)
{
numerator=n; denominator=d;
reduce();
}
public Rational(Rational r) //copy constructor
{
numerator=r.numerator;
denominator=r.denominator;
}
public void reduce()
{
int larger;
if (numerator>=denominator)
{
larger=numerator;
}
else
{
larger=denominator;
}
for (int i=1;i<=larger;i++)
{
if (numerator%i==0&&denominator%i==0)
{
numerator/=i; denominator/=i;
}
}
}
public Rational add(Rational a,Rational b)
{
int temp1,temp2,temp3,temp4;
temp1=a.numerator*b.denominator;
temp2=a.denominator*b.denominator;
temp3=b.numerator*a.denominator;
temp4=b.denominator*a.denominator;
numerator=temp1+temp3;
denominator=temp1;
reduce();
return this;
}
public Rational subtract(Rational a,Rational b)
{
int temp1,temp2,temp3,temp4;
temp1=a.numerator*b.denominator;
temp2=a.denominator*b.denominator;
temp3=b.numerator*a.denominator;
temp4=b.denominator*a.denominator;
numerator=temp1-temp3;
denominator=temp1;
reduce();
return this;
}
public Rational multiply(Rational a,Rational b)
{
numerator=a.numerator*b.numerator;
denominator=a.denominator*b.denominator;
reduce();
return this;
}
public Rational divide(Rational a,Rational b)
{
numerator=a.numerator*b.denominator;
denominator=a.denominator*b.numerator;
reduce();
return this;
}
public void print()
{
System.out.print(numerator+"/"+denominator);
System.out.flush();
}
public void floatPrint(int n) //n is precision
{
double temp=(double)numerator/denominator;
int temp1=(int)temp*Math.pow(10,n);
temp=(double)temp1/Math.pow(10,n);
System.out.print(Double.toString(temp));
System.out.flush();
}
}//test driver of class Rational
import java.io.*;public class exe6_3
{
public static void main(String args[]) throws IOException
{
Rational a;
a=new Rational();
a.print();
Rational b;
b=new Rational(6,8);
b.print();
// b.floatPrint(1);
Rational c;
c=new Rational(2,5);
a.add(b,c);
a.print();
a.subtract(b,c);
a.print();
a.multiply(b,c);
a.print();
a.divide(b,c);
a.print();
}
}输出:497892398902 怎么回事?????
(float)System.in.read()不过要加throws InterruptedException
import java.io.*;public class exercise1
{
public static void main(String arge[]) throws IOException
{
float inNumber;
int intPart=0;
float decimalPart;
System.out.println("Enter a float number:");
inNumber=(float)System.in.read();
System.out.println("The input number is:"+inNumber);
intPart=(int) inNumber;
decimalPart=inNumber-intPart;
System.out.println("The input number is:"+inNumber);
System.out.println("The int part is:"+intPart);
System.out.println("The decimal part is:"+decimalPart);
}
}