iT邦幫忙

0

Java程式問題

import java.util.*;
class CShape
{
public double pp()
{

}
public static void largest(CShape[] c)
{
	 double max=0.0;
	 for(int i=0;i<c.length;i++)
	 {
	 	**if(c[i]>max)
	 	{
	 		c[i]=max;
	 	}		**
	 }
	 System.out.println("最大值"+max);	
}

}
class CCircle extends CShape
{
double radius;
double pi=3.14;
public CCircle(double r)
{
radius=r;
}
public double pp()
{
return 2piradius;
}
}
class CTriangle extends CShape
{
double a,b,c;
public CTriangle(double x,double y,double z)
{
a=x;
b=y;
c=z;
}
public double pp()
{
return a+b+c;
}
}

class D10816317
{
public static void main(String[] args)
{
CShape[] cs = new CShape [4];
cs[0]=new CCircle(3);
cs[1]=new CCircle(7);
cs[2]=new CTriangle(3,4,5);
cs[3]=new CTriangle(4,8,9);

	CShape.largest(cs);	
}

}

在比大小那邊會出現兩個錯誤訊息 分別是
bad operand types for binary operator '>'

incompatible type :double cannot be converted to CShape

想請問一下各位這種問題該怎麼解決

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2021-03-23 21:49:48
最佳解答

你的 c (cs) 定義如下

CShape[] cs = new CShape [4];
cs[0]=new CCircle(3);
cs[1]=new CCircle(7);
cs[2]=new CTriangle(3,4,5);
cs[3]=new CTriangle(4,8,9);

而你的 max = 0.0

錯誤訊息告訴你
你的 if c[i] > max 無法執行
因為 c[i] 是 CShape, max 是 double

請問我if c[i] > max這邊的程式碼該如何更改

這得問你自己
CCircle 是圓形, CTriangle 是三角形
你用圓形和三角形去比較, 要比較出 max
你自己要決定「用什麼比較」?

我要發表回答

立即登入回答