Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [C]confrontare elementi dello stesso array.

    salve a tutti, ho la necessita di confrontare due elementi dello stesso array esempio:

    codice:
    int numeri[9];
    
    int i, j;
    
    for(i = 1; i <= 7; i+2)
    
    {
    
         for(j = 2; j <= 8; j+2)
    
         {
    
              if(numeri[i] >= numeri[j])
       
              {
    
                    printf("....");
    
              }
    
              else
            
              {
              
                    printf("...")
    
              }
    
         }
    
    }
    in pratica devo confrontare due valori per volta dello stesso array (primo confronto secondo, terzo confronto quattro, quinto confronto sesto, settimo confronto ottavo).

    solo che il ciclo va in loop, potete suggerirmi una possibile soluzione, non ne riesco a venir fuori.

  2. #2
    ... e?

    P.S.: quei due for sono sbagliati, il terzo pezzo dovrebbe essere i+=2 e j+=2.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    avevo postato per errore ora ho corretto.

  4. #4

    Re: [C]confrontare elementi dello stesso array.

    Originariamente inviato da bikerinside
    solo che il ciclo va in loop, potete suggerirmi una possibile soluzione, non ne riesco a venir fuori.
    Te l'ho già scritto, l'incremento è sbagliato. i+2 somma a i 2 e il risultato viene scartato. i resta ferma a zero. Quello che vuoi fare è i+=2. Ah, non so se sia intenzionale, ma il tuo primo ciclo parte da uno, mentre gli array in C partono dallo zero.
    in pratica devo confrontare due valori per volta dello stesso array (primo confronto secondo, terzo confronto quattro, quinto confronto sesto, settimo confronto ottavo).
    Per fare questo non c'è bisogno di due for annidiati:
    codice:
    int i;
    for(i=0; i<(sizeof(numeri)/sizeof(*numeri))-1;i+=2)
    {
        if(numeri[i]>=numeri[i+1])
        {
            /* ... */
        }
        else
        {
            /* ... */
        }
    
    }
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    grazie, si i cicli for partono da 1 e 2 i= 1 e j = 2 in modo intenzionale, so che un array di si 6 es: array[6]

    è uguale a dire 0,1,2,3,4,5,6. io devo incrementarli di 2 per volta perchè devono essere confrontati a due alla volta 1,2 3,4 5,6 7,8. ora provo con quello che mi hai scritto.

  6. #6
    niente... per me l'unica soluzione era i doppi cicli, mai e j non si incrementano insieme...
    nel senso che quando j si è incrementato fino ad 8 allora i si incrementa....

  7. #7
    Ascolta, se devi confrontare il primo con il secondo, il terzo con il quarto e così via i doppi cicli non servono e va bene quello che ti ho postato sopra. Se devi partire dall'elemento 1 invece che dallo 0, modifica il mio for di conseguenza.
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    ok, perfetto funziona.

    grazie ancora.

  9. #9
    Di niente, ciao!
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.