Ciao,
devo fare un progettino e sto rinfrescando il mio C, non senza problemi!
Il problema nel codice dell'esercizietto sotto e che mi da un segmentation fault dopo la terza scanf!le ho provate tutte ma niente...
codice:
#include <stdio.h>
#include <stdlib.h>
void scelta_operazione(char *operazione, int a, int b);
int main(void){
int a = 0;
int b = 0;
char *op = NULL;
printf("Inserisci due numeri interi!\n");
printf("a = ");
scanf("%d", &a);
printf("b = ");
scanf("%d", &b);
printf("Inserisci l'operazione da effettuare:");
scanf("%s", op);
scelta_operazione(op, a , b);
return 0;
}
void scelta_operazione(char *operazione, int a, int b){
int scelta = 0;
char *somma = "somma";
char *prodotto = "prodotto";
char *differenza = "differenza";
if( strcmp( operazione , somma ) == 0 )scelta = 1;
if( strcmp( operazione , prodotto ) == 0 )scelta = 2;
if( strcmp( operazione , differenza ) == 0 )scelta = 3;
else return;
switch(scelta){
case 1:
printf("L'operazione da te scelta è la somma.\n Il risultato è a+b = %d ", a + b);
break;
case 2:
printf("L'operazione da te scelta è il prodotto.\n Il risultato è a*b = %d ", a * b);
break;
case 3:
printf("L'operazione da te scelta è la differenza.\n Il risultato è a-b = %d ", a - b);
break;
default:
printf("ERRORE: Operazione non disponibile!");
break;
}
}
Sto usando gcc su Ubuntu 9.10 se può essere di aiuto!
Grazie dell'attenzione!