Visualizzazione risultati 1 fino 3 di 3

Discussione: Problema echo e differenza

  1. #1
    esercizisvolti non è connesso Neofita
    Data registrazione
    24-01-2013
    Messaggi
    1

    Predefinito Problema echo e differenza

    Salve a tutti ho un problema banale con il php e questo è il codice:
    Codice PHP:
    <?php
    $n
    ="5";
    $s ="1 11 21 41 51";
    $serie = explode(" ",$s);
    sort($serie);
    $diff = $serie[$n-1] - $serie[0];
    $passo = $diff / $n;
    for(
    $k=0;$k<$n;$k++)
    { if((
    $serie[$k+1] - $serie[$k]) == $passo);
    else echo(
    $serie[$k+1] - $passo);
    }
    ?>
    Perchè mi stampa "31-10" e non 21?

  2. #2
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Notice: Undefined offset: 5
    Ricorda che le chiavi delle array partono da 0.

  3. #3
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,576

    Predefinito

    Come detto da radiodelmomento, nell'ultimo for devi cambiar la condizione in
    Codice:
    $k < $n-1
    perché poi nel corpo del for utilizzi l'indice [$k+1].

    Comunque, ti scrive "31-10" ovvero due elementi: il numero "31" ed il numero "-10". Il primo è dato da 41-10 (con 10 = $passo), mentre il secondo è dato dal fatto che dicevamo sopra, ovvero che vai a leggere un elemento non inizializzato (sarebbe 0 - $passo = -10).

    Se modifichi la condizione del for, vedrai che ti stamperà 31, come dovrebbe.

    p.s: per rendere più leggibile il sorgente, invece di utilizzare:
    Codice:
    if(variabile == 10); 
    else <istruzione>;
    È molto più leggibile:
    Codice:
    if(variabile != 10)
    <istruzione>;
    Ciao!
    Ultima modifica di alemoppo : 11-01-2014 alle ore 19.34.25

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •