Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    25

    Funzione Fattoriale / media non funziona

    SAPRESTE DIRMI PERCHE' NON FUNZIONANO ?!?! STO IMPAZZAENDO

    codice:
    /*
    
     * PROGRAMMA CHE DATO IN INPUT UN VALORE STAMPA IL SUO FATTORIALE
    
     *
    
     * @author Lonzi Mattia
    
     * @version 0.1 2012-12-18
    
     */
    
    #include <stdio.h>
    
    
    
    int fattoriale() {
    
    	int numero;
    
    	int fattoriale;
    
    	int i = numero;
    
    	
    
    	if(numero == 1 || numero == 0) {
    
    		fattoriale = 1;
    
    	}
    
    	while(i >= 1) {
    
    		fattoriale = numero * i;
    
    		i--;
    
    	}
    
    	return fattoriale;
    
    
    
    }
    
    
    
    void main() {
    
    	int numero;
    
    	int fattoriale;
    
    
    
    	print("INSERIRE NUMERO");
    
    	scanf("%d", &numero);
    
    	printf("il fattoriale del numero inserito è %d", fattoriale());
    
    }


    codice:
     
    /*
    
     * PROGRAMMA CHE DATI IN INPUT DUE VALORI O PIU' VALORI STAMPA LA LORO MEDIA
    
     * @author Lonzi Mattia
    
     * @version 0.1 2012-12-18
    
     */
    
    #include <stdio.h>
    
    #define A 100
    
    #define B 0
    
    
    
    float media() {
    
    	int i = 0;
    
    	float numero;
    
    	float somma;
    
    	float media;
    
    
    
    	if(numero >= B || numero <= A) {
    
    		while(numero != 0) {
    
    			somma = somma + numero;
    
    			++i;
    
    		}
    
    	}
    
    	else {
    
    		printf("NUMERO NON ACCETTABILE ... INSERIRE NUMERI DA 0 (compreso) A 100 (compreso)");
    
    	}
    
    
    
    	media = somma / i;
    
    	return media;
    
    
    
    }
    
    
    
    void main() {
    
    	float numero;
    
    	float somma;
    
    
    
    	while(numero != 0) {
    
    		print("INSERIRE NUEMRO");
    
    		scanf("%f", &numero);
    
    	}
    
    	printf("la media dei numeri inseriti è %f", media());
    
    }


  2. #2
    Ciao,
    scusa se te lo dico ma mi sembra che devi cominciare dall'ABC del linguaggio.
    In primis chiami fattoriale ma non gli passi nessun parametro.
    Poi non inizializzi le variabili.

    Comincia a scrivere un piccolo programma in cui passi una variabile ad una funzione che ti scrive a video il valore.

    Comincia con l'approfondire il concetto di "scope" delle variabili.

  3. #3
    codice:
    #include <stdio.h>
    
     /*troppi spazzi non aumentano la leggibilità*/
    
    int fattoriale( int );     /*prototipo di funzione o dichiarazione di funzione*/
    
    /*Il prototipo, serve ad'informare il compilatore dell'esistenza
     *di una funzione di nome fattoriale che restituisce un int e ne prende un'
     *come parametro. Il nome utilizzato verrà annotato della tavola dei simboli 
     *del programma. Per ciò non potrai più usare il nome funzione nello stesso
     *scope( spazio di visibilità )
    */
    
    void main()         
    {
    	int numero;
    	                                                           
    	printf("Inserire numero intero positivo: ");
    		scanf("%d", &numero);
    
    	printf("Il fattoriale del numero inserito è %d\n", fattoriale(numero));
    }
    
    /*La funzione fattoriale, dato in ingrasso un intero positivo o nullo
    * ne restituisce il fattoriale*/
    
    int fattoriale( int intero )     /*definizione di funzione*/
    {
    	int fattoriale = 1;
    
    	while ( intero > 0 ) 
            {
    		fattoriale *= intero;              /*equivale a: fattoriale = intero * fattoriale;*/
    		--intero;                 /*l'operatore di decremento può essere anche prefisso */
    	}                                   /*ciò comporta piccole variazioni nel comportamento*/
    
    	return ( fattoriale );
    }
    Dante

  4. #4

    Moderazione

    Un paio di appunti:
    • il linguaggio di riferimento va sempre indicato, anche nel titolo (sotto forma di "tag");
    • dire "non funziona" non vuol dire niente - spiega che genere di errori ottieni (di compilazione, crash a runtime, errori logici, ...) in modo che chi legge la tua domanda possa andare a colpo sicuro;
    • scrivere tutto in maiuscolo equivale ad "urlare" - non credo ce ne sia bisogno.


    Per quanto riguarda il tag della discussione, lo aggiungo io, tu però prima di proseguire leggiti il regolamento.

    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    25
    allora io lo chiedo a voi perchè il mio prof ha fatto una cosa simile ma con le potenze...

  6. #6
    Nel main non passi nulla , i parametri delle funzioni vanno messi tra parentesi, dopo il nome che identifica la subroutine. Probabilmente il tuo professore ha usato delle variabili globali; visibili in tutto il programma. Le variabili globali vanno dichiarate fuori dal main e qualsiasi altra funzione.
    Dante

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.