Προς το περιεχόμενο

κουφο προβλημα με HTML και ευρεση max


Strategos

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπερα στην σχολη καναμε μια ασκηση που βρησκει το max απο 3 αριθμους σε html εμενα με τον δικο μου τροπο που ειναι ο πρωτος δουλεβε κανονικα αλλα οταν του εδινα 5-10-15 μου εβγαζε μεγαλυτερο το 5 ή διαφορετικων ψηφιων αριθμους. Εγραψα τωρα και τον τροπο του καθηγητή παλι το ιδιο λαθος μου βγαζει γιατί;

><HTML>
<HEAD>
<script language="JavaScript">
function a(){
a=prompt("ΔΩΣΕ ΑΡΙΘΜΟ","")
}
function b(){
b=prompt("ΔΩΣΕ ΑΡΙΘΜΟ","")
}
function c(){
c=prompt("ΔΩΣΕ ΑΡΙΘΜΟ","")
}
function max(){
max=0;
if(a>b && a>c){ max=a;}
if(b>a && b>c){ max=b;}
if(c>a && c>{ max=c;}
return max;
}
</script>
</HEAD>
<BODY>
<FORM>
<input type="button" value="A" onclick="a()">
<input type="button" value="B" onclick="b()">
<input type="button" value="C" onclick="c()"><br>
<input type="button" value="MAX" onclick="form.test.value=max()">
<input type="test" name="test" size="20">
</FORM>
</BODY>
</HTML>

 

><HTML>
<HEAD>
<script language="JavaScript">
function a(){
a=prompt("ΔΩΣΕ ΑΡΙΘΜΟ","")
}
function b(){
b=prompt("ΔΩΣΕ ΑΡΙΘΜΟ","")
}
function c(){
c=prompt("ΔΩΣΕ ΑΡΙΘΜΟ","")
}
function max(){
max=a;
if(b>max){
max=b;}
if(c>max){
max=c;}
return max;
}
</script>
</HEAD>
<BODY>
<FORM>
<input type="button" value="A" onclick="a()">
<input type="button" value="B" onclick="b()">
<input type="button" value="C" onclick="c()"><br>
<input type="button" value="MAX" onclick="form.test.value=max()">
<input type="test" name="test" size="20">
</FORM>
</BODY>
</HTML>

Δημοσ.

To πρόβλημά σου δεν είναι καθόλου κουφό είναι φυσιολογικότατο.

 

Το λάθος είναι στο ότι δεν έχεις λάβει υπόψιν σου ότι η prompt επιστρέφει string.

Οπότε όταν κάνεις τις συγκρίσεις στην max() τις κάνει ορθογραφικά.

Και εκεί το 5 είναι μεγαλύτερο από το 15.

 

Η λύση είναι να μετατρέψεις τα string σε int.

Άρα πχ:

 

a = parseInt(prompt("ΔΩΣΕ ΑΡΙΘΜΟ",""));

 

Κάντο αυτό και στα b,c.

Δημοσ.

οκ σε ευχαριστω, οχι τπτ γιατι ελεγε οτι εφτεγε ο τροπος ευρεσης του max που ειχα κανει αλλα μου φαινοτανε μια χαρα.

Δημοσ.

Ωραίος καθηγητής....δεν κατάλαβε την απλούστατη και ορθότατη υλοποίησή σου,ενώ και αυτός έκανε το ίδιο ακριβώς λάθος με σένα.

Δημοσ.

Γίνομαι ψείρας ίσως αλλά αν δώσεις 15,15,5 επιστρέφει μηδέν (αν είδα καλά). Οπότε αν θες να επιστρέφει πάντα σωστό αποτέλεσμα θα πρέπει να διακρίνεις κάποιες παραπάνω περιπτώσεις. Ο δεύτερος τρόπος δεν έχει αυτό το "bug".

 

Επίσης διαβάζοντας το topic με έστειλες λίγο. Με javascript είναι όχι με HTML :)

Δημοσ.

ισως αν εβαζα >= αντι για >.

νομιζω τωρα ειναι οκ.

function max(){

max=null;

if(a>=b && a>=c){ max=a;}

if(b>=a && b>=c){ max=b;}

if(c>=a && c>=B){ max=c;}

return max;

}

 

Επίσης διαβάζοντας το topic με έστειλες λίγο. Με javascript είναι όχι με HTML :)

ναι εχεις δικαιο απλα ελεγα μπας και δεν ηταν το λαθος στο μερος του javascript αλλα μηπως ειχε σχεση με html. ετσι και αλλιως στο μαθημα java την εκανα.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...