Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 27

Discussione: [c]fibonacci

  1. #1
    Utente di HTML.it L'avatar di spode
    Registrato dal
    Jul 2010
    Messaggi
    85

    [c]fibonacci

    codice:
    #include<stdio.h>
    #include<stdlib.h>
    
    main(){
           int prepreced,preced,i=0,numero,fibo;
           do{
           printf("ATTENZIONE: INSERIRE NUMERI ALTI NON FA BENE AL PC...\2\nInserisci n:");
           scanf("%d",&numero);} while(numero<1);
    
           prepreced=0;preced=1;
           do       {
                    i=prepreced+preced;
    
                        preced=i;
                        prepreced=preced;
    
                        printf("\nI numeri prima del numero inserito e' %d nella successione di Fibonacci\n",i);
                        } while(i>=numero);
    
           printf("Premi \"X\" in alto a destra per uscire!\n\n");
           main();
    
           system("pause");
    
    
           }

  2. #2
    A parte che solo con il codice non si capisce di cosa hai bisogno, per la successione di fibonacci puoi usare una funzione ricorsiva
    codice:
    int fibo(int fb)
    {
       if(fb==0 || fb ==1)
          fb = 1;
       else
          fb = fibo(fb-1) + fibo(fb-2);
       return fb;
    }

  3. #3
    Utente di HTML.it L'avatar di spode
    Registrato dal
    Jul 2010
    Messaggi
    85
    grazie, ma in realtà cerco la correzione dell' esercizio

    secondo me è giusto, ma non secondo il pc

  4. #4
    che errore ti da il "PC"?
    Administrator of NAMDesign.Net

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: [c]fibonacci

    Originariamente inviato da spode
    codice:
    #include<stdio.h>
    #include<stdlib.h>
    
    main(){
    Il main va dichiarato "int".

    Originariamente inviato da spode
    codice:
    main();
    
           system("pause");
           }
    Richiamare il main così è una cosa bruttissima! E bruttissima è anche la chiamata a system (che comunque non verrà MAI fatta).
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    grazie, ma in realtà cerco la correzione dell' esercizio
    Ma se neanche dici qual'è il tuo problema..
    secondo me è giusto, ma non secondo il pc
    Decidetevi... Il programma é sbagliato perché lo é la sua logica.
    codice:
       i = 0;
       ...
       prepreced=0;preced=1;
    
       do
       {
          i=prepreced+preced;
          preced=i;
          prepreced=preced;
    
          printf("\nI numeri prima del numero inserito e' %d nella successione di Fibonacci\n",i);
       
       }while(i >= numero);
    Il calcolatore fa i calcoli che tu gli dici di fare... i sará sempre 1.

  7. #7
    Utente di HTML.it L'avatar di spode
    Registrato dal
    Jul 2010
    Messaggi
    85
    hai ragione. non me ne ero accorto

    l'errore che mi dà il pc? allegato! allegato!

    il codice aggiornato, ma sempre non funzionante...
    codice:
    #include<stdio.h>
    #include<stdlib.h>
    
    main(){
           int prepreced,preced,i=0,numero,fibo;
           do{
           printf("ATTENZIONE: INSERIRE NUMERI ALTI NON FA BENE AL PC...\2\nInserisci n:");
           scanf("%d",&numero);} while(numero<1);
    
           prepreced=0;preced=1;
           do       {
                    i=prepreced+preced;
    
                        preced=i;
                        prepreced=preced;
    
                        printf("I numeri prima del numero inserito e' %d nella successione di Fibonacci\n",i);
                       i++;
                        } while(i>=numero);
    
           printf("Premi \"X\" in alto a destra per uscire!\n\n");
           main();
           }

  8. #8
    il codice aggiornato, ma sempre non funzionante
    non é che togliendo la system hai risolto chissá cosa..

  9. #9
    Comunque ritornando alla funzione che ti ho scritto come prima risposta, é leggermente sbagliata, con una piccola correzione
    codice:
    int fibo(int fb)
    {
       if(fb == 0 || fb == 1)
          return fb;
       else
          return fibo(fb-1) + fibo(fb-2);
    }
    é decisamente meglio.

  10. #10
    Utente di HTML.it L'avatar di spode
    Registrato dal
    Jul 2010
    Messaggi
    85
    0k. comunque ho inserito
    i++;
    quindi cambia molto. comunque perchè non funzionano in generale i cicli for (uso code block 8, con testo copiato -e non funzionante- da devc++), a quanto mi sembra di notare ?

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.