Errori programma

di il
2 risposte

Errori programma

Sto scrivendo un programma in c con l' utilizzo di funzioni, ma non riesco a capire gli errori che commetto.
Qui sotto vi lascio il codice e in allegato gli errori che compaiono:

#include <stdio.h>
#include <stdlib.h>

/* si realizzi un programa con l'utilizzo di funzioni. Il programma simula una calcololatrice. Deve permettere di fare operazioni di addizione, sottrazione, moltiplicazione e divisione. All' inizio dell' esecuzione del programma sarà 
stampato a video un menù di scelta */

int MostraMenu();
int addizione(int a, int b);
int sottrazione(int a, int b);
int moltiplicazione(int a, int b);
int divisione(int a, int b);

int main(int argc, char *argv[]) {
	int scelta=0;
	scelta=MostraMenu();
	switch(scelta){
		case 1:
			addizione(int a, int b);
			break;
		case 2:
			sottrazione(int a, int b);
			break;
		case 3:
			moltiplicazione(int a, int b);
			break;
		case 4:
			divisione(int a, int b);
			break;				
	}
	
	
	return 0;
}
int MostraMenu(){
	int scelta=0;
	printf("1) Addizione\n");
	printf("2) Sottrazione\n");
	printf("3) Moltiplicazione\n");
	printf("4) Divisione\n");
	scanf("%d",&scelta);
	return scelta;
}

int addizione(int a, int b){
	int somma=0;  //inizializza a 0 la variabile somma
	scanf("%d",&a);
	scanf("%d",&b);
	somma= a+b;
	return somma;
}

int sottrazione(int a, int b){
	int diff=0;
	scanf("%d",&a);
	scanf("%d",&b);
	diff= a-b;
	return diff;
}

int moltiplicazione(int a, int b){
	int prodotto=0;
	scanf("%d",&a);
	scanf("%d",&b);
	prodotto= a*b;
	return prodotto;
}


int divisione(int a, int b){
	int quoziente=0;
	scanf("%d",&a);
	scanf("%d",&b);
	quoziente= a/b;
}


Allegati:
22833_8d4c945efbc492ad506ad9279827d836.png
22833_8d4c945efbc492ad506ad9279827d836.png

2 Risposte

  • Re: Errori programma

    Chiami delle funzioni inviando loro dei parametri che non esistono! Se guardi, nel main() non hai nessuna dichiarazione di a, nè di b. La soluzione è semplice: dichiara a e b nel main, quindi "porta fuori" la richiesta dei dati dalle singole funzioni.

    Inoltre, quando chiami una funzione NON devi specificare il tipo, per cui in case 1 (ad esempio) addizione(int a, int b) dovrebbe essere più semplicemente addizione(a,b)
  • Re: Errori programma

    Prova questo (non è detta che funzioni!):
    #include <stdio.h>
    #include <stdlib.h>
    
    /*
    si realizzi un programma con l'utilizzo di funzioni. Il programma simula una
    calcolatrice. Deve permettere di fare operazioni di addizione, sottrazione,
    moltiplicazione e divisione. All' inizio dell' esecuzione del programma sarà
    stampato a video un menù di scelta
    */
    
    int MostraMenu();
    int addizione(int a, int b);
    int sottrazione(int a, int b);
    int moltiplicazione(int a, int b);
    int divisione(int a, int b);
    
    int main(int argc, char *argv[]) {
        int a, b, r, scelta = MostraMenu();
        
        if( scelta < 1 || scelta > 4 ) {
            printf( "Scelta non valida.\n\n" );
            return 0;
        }
        
        scanf("%d",&a);
        scanf("%d",&b);
        
        switch(scelta) {
            case 1:
                r = addizione(a,b);
                break;
            case 2:
                r = sottrazione(a,b);
                break;
            case 3:
                r = moltiplicazione(a,b);
                break;
            case 4:
                r = divisione(a,b);
                break;
            default: ;
        }
        
        print( "Risultato: %d\n\n", r );
       
        return 0;
    }
    
    int MostraMenu( void ) {
        int scelta = 0;
        printf("1) Addizione\n");
        printf("2) Sottrazione\n");
        printf("3) Moltiplicazione\n");
        printf("4) Divisione\n");
        scanf("%d",&scelta);
        return scelta;
    }
    
    int addizione(int a, int b) {
        int somma = a+b;
        return somma;
    }
    
    int sottrazione(int a, int b) {
        int differenza = a-b;
        return differenza;
    }
    
    int moltiplicazione(int a, int b) {
        int prodotto = a*b;
        return prodotto;
    }
    
    int divisione(int a, int b) {
        int quoziente = a/b;
        return quoziente;
    }
Devi accedere o registrarti per scrivere nel forum
2 risposte