C++ FUNZIONI

di il
8 risposte

C++ FUNZIONI

Salve , purtroppo non riesco a capire cosa sbaglio in questo programma con le funzioni :
Scrivere la funzione int pari( int n ) che:
? riceve un parametro;
? restituisce il valore 1 se n è pari, altrimenti restituisce 0;
n deve essere un intero >=0, quindi la funzione deve controllare l’inserimento
Per determinare se n è pari usare il seguente procedimento (NON USATE %
o divisione):
1. si sottrae ripetutamente 2 da n.
2. Quando il residuo è uguale a 0, allora il numero n è pari;
3. quando il residuo è uguale a 1, allora il numero n è dispari.
? Il main richiama la funzione, passandole il valore e visualizzando il
risultato.
il mio codice é questo
#include <iostream>
#include <cstdlib>
int pari (int n){
        do {
            n-2;
        } while (n>=0);
        return n;
        
        
    }
    



using namespace std;

/*
 * 
 */
int main(int argc, char** argv) {
    
    float n;
    cin>>n; 
    pari(n);
    cout<<pari(n)<<endl;
    
   
    if (n=1) {
        pari(n);
         cout<<pari(n)<<endl;
        cout<<"il numero inserito è dispari";
    }
    if  (n=0) {
        pari(n);
         cout<<pari(n)<<endl;
        cout<<"il numero inserito è pari";
    }

    return 0;
}
IN OUTPUT ho sempre il numero é dispari qualsiasi numero inserisca

8 Risposte

  • Re: C++ FUNZIONI

    Usa i tag CODE per il codice nel forum.

    Sono sbagliate molte cose ...

    Tutto il programma non ha molto senso ...

    n deve essere un int e non un float
    n-2; non significa nulla
    if (n=1) e if(n=0) per confrontare si usa == e non =
  • Re: C++ FUNZIONI

    Se uso l'operatore del confronto , non mi dice niente che sia pari o dispari.
  • Re: C++ FUNZIONI

    #include <iostream>
    #include <cstdlib>
    int pari (int n){
            do {
                n=n-2;
            } while (n>=0);
            return n;
            
            
        }
        
    
    
    
    using namespace std;
    
    /*
     * 
     */
    int main(int argc, char** argv) {
        
        int n;
        cin>>n; 
        pari(n);
        cout<<pari(n)<<endl;
        
       
        if (n==1) {
            cout<<"il numero inserito è dispari";
        }
        if  (n==0) {
            cout<<"il numero inserito è pari";
        }
    
        return 0;
    }
    ho cambiato alcune cose ma lo stesso ci sto perdendo la testa
  • Re: C++ FUNZIONI

    Li vuoi usare i tag CODE come ti ho detto?
  • Re: C++ FUNZIONI

    Scusa ma sono nuovo , ora vedo di farlo
  • Re: C++ FUNZIONI

    Gia' subito!!!

    COSA SUCCEDE se n == 1 ???
    
    int pari (int n){
        do {
            n=n-2;
        } 
        while (n>=0);
        return n;
    }
    
    Il codice DEVE ESSERE BEN FORAMMATTO, con la corretta identazione.

    SE per il compilatore E' ININFLUENTE, per chi legge codice da n-milioni di anni E' FONDAMENTALE!!!!

    Tu dirai: ma COME! Non ha ancora imparato a leggere il codice scritto in modo disordinato?

    OVVIAMENTE, ma la cosa sta' ampiamente sui ""cabasisi"" come diceva il compianto Pasquano
  • Re: C++ FUNZIONI

    Perché 73910 chiamate a pari?!

    Non puoi scrivere [CODE]if (n == 1) aspettandoti che dopo l’esecuzione di pari n sia o 0 o 1. La funzione modifica una copia di n (che è argomento) e non n.
    Una cosa corretta è: [CODE] if (pari(n)) std::wcout << n << L" è pari\n"; else std::wcout << n << L" è dispari\n"; pari attualmente restituisce 1 se dispari e 0 se pari.
  • Re: C++ FUNZIONI

    _Achille ha scritto:


    Perché 73910 chiamate a pari?!
    Mi son sempre chiesto pure io perché così tanti fanno questa cosa assurda

    Comunque un numero è pari se (n & 1) oppure (n % 2) è uguale a zero
Devi accedere o registrarti per scrivere nel forum
8 risposte