Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di fritzz
    Registrato dal
    Dec 2007
    Messaggi
    13

    [C] problema funzioni

    Aiutooooooooooooooooo

    questo programma dovrebbe calcolare una sequenza numerica ma in realtà apre un ciclo infinito e non capisco proprio perchè..io ho provato a dare alla funzione "col" l'intero n e così funziona tutto ma se alla fuinzione "col" do un intero generico(a) il programma non funge!!
    vi posto il codice......vedete la funziona"col" usa l'intero generico "a"....io con "n=col(n);" dentro la funziona main non dovrei dirgli di eseguire la funzione "col" con l'intero n al posto dell' inero "a"????
    grazie e spero di essere stato chiaro
    #include <stdio.h>

    int col(int);

    int main()
    {
    int n;
    scanf("%d",&n);
    while(n!=1) {
    n=col(n);
    printf("%d ",n);
    }
    printf("\n");
    return 0;
    }
    int col(int a) {
    int a;

    if(a%2==0)
    a /=2;
    else a = (a*3)+1;
    return(a);
    }

    Ho visto che incollarlo è un po' una vaccata..se volete ho inseriro il codice anke qui!!
    http://pastebin.com/d5dfd655c

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Non devi ridefinire il parametro formale

    codice:
    int col(int a) 
    {
      // int a; ELIMINA
    
      if(a%2==0)
        a /=2;
      else 
        a = (a*3)+1;
    
      return(a);
    }
    P.S. Usa i tag [*CODE] [*/CODE] (senza gli asterischi) per racchiudere il codice ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di fritzz
    Registrato dal
    Dec 2007
    Messaggi
    13
    Originariamente inviato da oregon
    Non devi ridefinire il parametro formale

    codice:
    int col(int a) 
    {
      // int a; ELIMINA
    
      if(a%2==0)
        a /=2;
      else 
        a = (a*3)+1;
    
      return(a);
    }
    P.S. Usa i tag [*CODE] [*/CODE] (senza gli asterischi) per racchiudere il codice ...
    ahhh ho capito!!grazie!!!io devo definire la variabile locale solo quando non ho interi in entrata ma ne ho in uscita..tipo con la scanf...giusto?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Originariamente inviato da fritzz
    ahhh ho capito!!grazie!!!io devo definire la variabile locale solo quando non ho interi in entrata ma ne ho in uscita..tipo con la scanf...giusto?
    Non ho capito cosa intendi ... devi usare le variabili locali solo quando servono ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di fritzz
    Registrato dal
    Dec 2007
    Messaggi
    13
    [QUOTE]Originariamente inviato da oregon
    Non devi ridefinire il parametro formale

    codice:
    int col(int a) 
    {
      // int a; ELIMINA
    
      if(a%2==0)
        a /=2;
      else 
        a = (a*3)+1;
    
      return(a);
    }
    intendevo..la variabile "a" devo dichiarla solo in una funzione del tipo
    codice:
    int numero(void) {
    int a;
    scanf("%d",&a);
    return(a);
    }
    in questo caso è giusto dichiararla perchè la funzione"numero" ha come entrata void?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Ah ... sì ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.