[PHP] non trovo l'errore?

CafeZero

Nuovo Utente
16 Apr 2018
3
0
1
25
ragazzi mi aiutate a trovare l'errore? sto facendo un semplice programma che inseriti numeri in un array (finchè non si inserisce il numero 0), il programma li stampa nello stesso ordine ma con la scritta vicino sul maggiore e minore.. aiutatemi solo a capire dove ho sbagliato, non scrivetemi righe di codice con funzioni, considerando anche che è solo una settimana che faccio php a scuola.. grazie a tutti coloro che mi aiuteranno e buona serata!!
PHP:
<?php
$numeri= array();

/* immissione numeri */
$i=0;
do{
   fwrite(STDOUT,"inserisci un numero: ");
    $numeri[$i]=(float) fgets(STDIN);
}while($numeri[$i]!=0);


/* creiamo un file di testo */
$testo= fopen("output.txt","w");

$i=0;
$min=0;
$max=0;

do{
    if($numeri[$i]<$min)     /* Troviamo il minimo */
        $min=$numeri[$i];
 
    if($numeri[$i]>$max)      /* Troviamo il massimo */
        $max=$numeri[$i];
    $i++;
}while($numeri[$i] !=0);

$i=0;
fwrite($testo,"$max  $min");
do{
    fwrite($testo,"$numeri[$i]");
 
    if($numeri[$i]==$max)
        fwrite($testo,"<= Numero massimo ");
    if($numeri[$i]==$min)
        fwrite($testo,"<= Numero minimo");
 
    fwrite($testo,"\r\n");
    $i++;
 
}while($numeri[$i]!=0);


?>
 
Ultima modifica di un moderatore:

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.449
338
83
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
code.gif
quando posti del codice, oppure la funzione codice dalla barra degli strumenti
box inserisci 2.png.JPG

Inoltre ti prego di leggere attentamente il regolamento generale del forum e quello di sezione dove posti
Grazie
Per questa volta te lo sistemo io ma mi raccomando per il futuro
 

CafeZero

Nuovo Utente
16 Apr 2018
3
0
1
25
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag Vedi l'allegato 5230 quando posti del codice, oppure la funzione codice dalla barra degli strumenti
Vedi l'allegato 5231
Inoltre ti prego di leggere attentamente il regolamento generale del forum e quello di sezione dove posti
Grazie
Per questa volta te lo sistemo io ma mi raccomando per il futuro
ah ok, grazie mille, ti prego di scusarmi dato che sono nuovo. Prometto che non succederà più in futuro, e grazie ancora!
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
1 ) STDIN e STDOUT mi sembra non siano stati aperi, (non li ho mai usati, ma leggendo il manuale ...
in ogni caso puoi fare tu prove

2 ) nella lettura dei valori manca l'incremento dell'indice

3 ) gli indici ($i) se incrementi alla fine delle operazioni, la clausola while controlla la cella successiva, che non esiste
conviene sempre mettere l'incremento all'inizio del ciclo
uscendo dal ciclo con l'indice che punta all'ultimo elemento

4 ) min va inizializzato con un valore alto altrimenti non sarà mai aggiornato

5 ) all'interno dei loop va escluso il valore 0 altrimenti bisogna gestire con l'indice che escluda l'ultimo valore (lo zero)

6 ) i file aperti andrebbero chiusi al termine del processo o quando non servono più

upload_2018-4-19_22-26-11.png
ho modificato il meno possibile il tuo codice, "leggi" bene gli errori logici ...

PHP:
<?php
$numeri= array();

$STDIN  = fopen("php://STDIN",  "r");  /* creiamo STDIN  */
$STDOUT = fopen("php://STDOUT", "w");  /* creiamo STDOUT */

$testo = fopen("output.txt","w");      /* creiamo un file di testo */

 
/* immissione numeri */
$i = -1;
do{
    $i++;

    fwrite($STDOUT,"inserisci un numero: ");
    $numeri[$i] = (float) fgets($STDIN);

}while($numeri[$i] != 0);


/* trovo minimo e massimo e li scrivo in output */
$i   = -1;
$min = 999999999;
$max = 0;

do{
    $i++;

    if($numeri[$i] != 0) {
        if($numeri[$i] < $min)     /* Troviamo il minimo */
            $min = $numeri[$i];

        if($numeri[$i] > $max)     /* Troviamo il massimo */
            $max = $numeri[$i];
    }

}while($numeri[$i] != 0);

fwrite($testo,"minimo  = ".$min.PHP_EOL);
fwrite($testo,"massimo = ".$max.PHP_EOL);


/* scrivo la lista dei numeri in output */
$i = -1;
do{
    $i++;

    if($numeri[$i] != 0) {
        fwrite($testo,$numeri[$i]);

        if($numeri[$i] == $max)
            fwrite($testo," <= Numero massimo ");

        if($numeri[$i] == $min)
            fwrite($testo," <= Numero minimo");

        fwrite($testo,PHP_EOL);
    }

}while($numeri[$i] != 0);


/* chiudo tutti i file aperti */
fclose($STDIN);
fclose($STDOUT);
fclose($testo);

?>
 
Discussioni simili
Autore Titolo Forum Risposte Data
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
P Data scraping in PHP non funziona PHP 4
L php mysql non salva solo id PHP 21
A php metodo post jquery non da mai errore jQuery 4
M Guestbook - non funziona dopo upgrade di PHP PHP 5
Valerio93 [PHP] non capisco come mai mi da la data NULL PHP 3
S [PHP] non prende la query PHP 0
WebmasterFioriniAndrea [PHP] Problema che non mi fa vedere niente PHP 2
Leshabituelles Non riesco ad aggiornare PHP PHP 0
Max 1 [PHP] Script che funziona in locale e non online PHP 16
R [PHP] pagina inclusa che non viene visualizzata PHP 2
Punix [PHP] query non valida PHP 1
M [PHP] Visualizzare un array partendo dal numero 1 e non 0 PHP 5
gandalf1959 [PHP] Inserimento di più righe non funziona come mi aspetto... PHP 2
M [PHP] Query UPDATE che non mi aggiorna campi seconda tabella PHP 3
M [PHP] header (location..) non funzionante dopo login PHP 3
B [PHP] Valore variabile non riconosciuto PHP 1
M [PHP] Selezionare immagini directory non presenti in db PHP 11
P [PHP] $_GET non preleva variabile nell’URL PHP 4
R mojave php non interpretato PHP 11
M Non corretta lettura del file php.ini della sezione CLI PHP 3
P [PHP] Input Type="date" non va correttamente con Apple PHP 2
Cosina [PHP] Preservare i campi del form solo se l'invio non ha successo PHP 5
S [PHP] Selezionare i campi non in comune con le altre colonne della tabella PHP 4
Monital [PHP] Insert into non inserisce tutti i dati PHP 1
T interpretare uno script php non fatto da me... PHP 3
M PHP - Funzione non e scrive il risultato PHP 3
L [PHP] case then e campo non riconosciuto PHP 0
T [PHP] aiuto....Fatal error: Uncaught Error:non riesco a capire PHP 1
T [PHP] ...Parse error che non c'è... PHP 7
M [PHP] Non si connette PHP 7
W [PHP] Non esegue il parsing su un dato sito e negli altri si... PHP 0
A Php mail non invia due mail di seguito PHP 3
O PHP 5.6 non riesco ad abilitare TSL 1.2 PHP 1
L [PHP] Nuovo server, query non funzionano PHP 3
M [PHP] Escludere campi non valorizzati PHP 22
Tommy03 Perchè non si apre una pagina PHP PHP 4
F [PHP] if(isset($_POST['Invia'])) non mi riconosce le variabili PHP 3
D [PHP] Update non trasferisce condizione where PHP 1
V Creare tabella mysql con php non funziona PHP 1
V [PHP] Perché non funziona ? PHP 1
V [PHP] Variabile modificata in un if non mantiene quel valore PHP 5
alessandra86 [PHP] Elementi di un array non visualizzabili PHP 7
A [PHP] Non prende variabile $provincia ma tutte le altre si PHP 6
M [css][php] codice php esterno non vede il css PHP 6
M [PHP] Non calcola l'ultimo record inserito PHP 13
M [PHP] Problema IF non riconosciuta PHP 2
webimage [PHP] Non inserimento in tabella PHP 19
D [PHP] in una determinata fascia oraria non visualzzare campo PHP 5
T PHP: aggiunta a query che non so fare... PHP 2

Discussioni simili