This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.

Hi all I'm trying to write a program that gives the biggest of 3 numbers (integers) and this is the error I get "operator > cannot be applied to boolean, int" Could someone tell me what am I doing wrong? cuz a similar code works for just 2 numbers. Here's the code

import acm.program.*;

public class ProgramaMayorDe3 extends DialogProgram {

public static void main(String[] args) { new ProgramaMayorDe3().start(); }

public void run() {

int x; int y; int z;

x = this.readInt("Dame el primer numero:"); y = this.readInt("Dame el segundo numero:"); z = this.readInt("Dame el tercer numero:");

int r = this.mayor(x, y, z);

this.println("El mayor entre " + x + " , " + y + " y " + z + " es: " + r); }

public int mayor(int a, int b, int c) { if (a > b > c) { return a; } if (a < b > c) { return b; } else { return c; }

a > b > c is not a java expression. You need something like

or

By the way, WillowR, welcome to JavaRanch. Please take a moment and adjust your display name to meet the JavaRanch Naming Policy. You can change it here.

Thanks! [ October 15, 2005: Message edited by: Marilyn de Queiroz ]

JavaBeginnersFaq "Yesterday is history, tomorrow is a mystery, and today is a gift; that's why they call it the present." Eleanor Roosevelt

The problem with (a > b > c) is that a > b evaluates to a boolean (true or false), and then you have a problem because you're trying to determine if this boolean is "greater than" c (which is an int). You can't compare booleans to ints.

Basically, you'll want to rewrite this to something like...

(a > b) && (b > c)

"We're kind of on the level of crossword puzzle writers... And no one ever goes to them and gives them an award." ~Joe Strummer sscce.org

Think for a minute how you'd solve this without a computer. If I gave you a written list of numbers just big enough that you couldn't spot the biggest one easily you might look at the first and say "that's the biggest so far", then look at the next and see if it's bigger, then the next. When you find a new "biggest so far" you might put your finger there to hold the place.

I'm thinking like a mean spirited teacher ... what if your instructor says "Now you've solved for three, do it for ten" how could you make the program handle more input numbers without getting longer and longer combinations of x > a && x > b ...

A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi

I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com