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

    [C] verificare ordinamento array con ricorsione

    Vorrei verificare se un array di interi è ordinato in senso crescente tramite la ricorsione.

    codice:
    /*
    IP a[]
    IP n
    OR indicazione se l'array è ordinato in ordine crescente
    */
    
    int Ordinato (const int *a, int n) {
        if (n=1)
           return 1;
        else if (a[n-1]>Ordinato(a,n-1))
             return 1;
        else
            return 0;
    } /* Ordinato */
    Non riesco a correggerlo.
    In esecuzione mi da sempre 1.

    Potete darmi una mano?

  2. #2
    penso sia sbagliata la logica.... cioè, ti gli fai confrontare il valore della variabile a[n-1] con il valore ritornato dalal funzione che è o 0 o 1... quindi è tipicamente sempre maggiore e rotornerà sempre 1.

    poi l'if è n==1 e non n=1

  3. #3
    Originariamente inviato da ascatem2
    penso sia sbagliata la logica.... cioè, ti gli fai confrontare il valore della variabile a[n-1] con il valore ritornato dalal funzione che è o 0 o 1... quindi è tipicamente sempre maggiore e rotornerà sempre 1.

    poi l'if è n==1 e non n=1
    Sulla logica hai ragione.
    E' che l'ho scritto e pensato in 1 min (quindi gli errori di distrazione sono anche giustificabili).

    Ma come potrei risolverlo allora?

  4. #4
    codice:
    /**funzione che dice se un'array è ordinato in modod crescente
    @param a array di interi
    @param n lunghezza logica dell'array
    @return 1 se l'array è disposto in ordine crescente, 0 se non lo è
    */
    int arrayOrdinato(int a[],int n){
        if(n==1)             
          return 1;
        else
          if(a[n-1]>=a[n-2])
             return arrayOrdinato(a,n-1);
          else
            return 0;
    }//ordina
    eccola qui la tua funzione.

  5. #5
    che scuola fai? perchè noto che sei dell'89 e di Padova... mica farai il severi?

    in caso mandami PM :P

  6. #6
    Ti ho scritto un pvt.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.