C:
#include <stdio.h>
struct paolo
{
float reali;
float immagginari;
};
typedef struct paolo num_complessi;
main()
{
num_complessi n, n1;
float som, somma, molti, i, j;
char scelta;
printf("Inserisci il primo numero complesso: \n");
scanf("%f", &n.reali); //acquisizione numeri complessi in coppia per la configurazione di a+jb
scanf("%f", &n.immagginari);
printf("Inserisci il secondo numero complesso: \n");
scanf("%f", &n1.reali);
scanf("%f", &n1.immagginari);
printf("\nI numeri complessi inseriti sono: %f + j%f e %f + j%f \n\n", n.reali, n.immagginari, n1.reali, n1.immagginari);
do{
//da qui
printf("addizzione(a), sottrazione(s), prodotto(p) o divisione(d): ");
scanf("%c", &scelta);
//a qui non esegue la scanf
switch (scelta) //scelta dell'operazione da effettuare
{
case 'a':
som = n.reali + n1.reali;
somma = n.immagginari + n1.immagginari;
printf("La somma dei numeri complessi è: %f + j%f \n\n", som, somma); //somma della coppia di numeri complessi in due variabili per la configurazione di a+jb
break;
case 's':
som = n.reali - n1.reali;
somma = n.immagginari - n1.immagginari;
printf("La differenza tra i numeri complessi e': %f + j%f\n\n", som, somma); //differenza della coppia di numeri complessi in coppia per la configurazione di a-jb
break;
case 'p':
som = n.reali * n1.reali - n.immagginari * n1.immagginari;
somma = n.reali * n1.immagginari + n1.reali * n.immagginari;
printf("La moltiplicazione è: %f + j%f\n\n", som, somma); //moltiplica reale*reale1 - immaginario*immaginario1 e reale*immaginario1 + reale1*immaginario
break;
case 'd':
i = n1.reali * n1.reali - n1.immagginari * n1.immagginari;
som = (n.reali * n1.reali - n1.immagginari * n.immagginari) / i; //divisione tra a+jb e a1+jb1
somma = (n1.reali * n.immagginari - n.reali * n1.immagginari) / i;
printf("La divisione è %f - j%f", som, somma);
break;
default:
printf("Scelta non valida\n\n");
j = 0;
}
printf("Vuoi effettuare altre operazione? y/n: ");
scanf("%c", &scelta);
if(scelta == 'y')
{
j = 0;
}
else
{
j = 1;
}
}while(j == 0);
}
Sono uno studente e questo programma grazie all'utilizzo delle strutture serve ad effettuare varie operazioni con i numeri complessi, le operazioni sono perfettamente funzionanti (dovrebbero) ma non riesco a capire perchè non funziona lo switch case e la scanf con tipo char scelta.
Allegati
Ultima modifica da un moderatore: