Salve, dovendo scrivere un programma con cui effettuare somma, sottrazione, moltiplicazione, divisione, modulo, radice quadrata, potenza di 3di due numeri dati in ingresso sullo standard input dall’utente (numeri reali), ho provato a scrivere il seguente codice:
codice:
#include <stdio.h>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <math.h>
int main () {
float a, b, c, d, e, f, g_1, g_2, h_1, h_2, i_1, i_2;
printf("Inserire il primo valore \n");
scanf("%d", &a);//Comando per definire le variabili di cui si devono inserire i valori
printf ("Inserire il secondo valore \n");
scanf("%d", &b);
printf ("La somma dei due valori inseriti e': %f \n", c);
c = a + b;
printf ("La differenza dei due valori inseriti e': %f \n", d);
d = a - b;
printf("Il prodotto dei due valori inseriti e': %f \n", e);
e = a * b;
printf("Il quoziente dei due valori inseriti e' %f \n", f);
f = a / b;
printf("Il modulo del primo valore inserito e': %f \n", g_1);
g_1 = abs(a);
printf ("Il modulo del secondo valore inserito e': %f \n", g_2);
g_2 = abs(b);
printf ("La radice quadrata del primo valore inserito e': %f \n", h_1);
h_1 = sqrt(a);
printf("La radice quadrata del secondo valore inserito e': %f \n", h_2);
h_2 = sqrt(b);
printf("La potenza di 3 del primo valore inserito e':%f \n", i_1);
i_1 = (a) * (a) * (a);
printf("La potenza di 3 del secondo valore inserito e': %f \n", i_2);
i_2 = (b) * (b) * (b);
system ("PAUSE"); //COMANDO DI ATTESA
return 0; //valore di ritorno del programma
}
Il problema è che quando compilo mi riporta, per tutte le operazioni, un valore pari a 0. Inoltre, se provo ad inserire come primo valore un intero il programma non mi permette neanche di inserire il secondo valore e si termina immediatamente. Ho provato a controllare più volte il tutto e non sono riuscito a capire quale possa essere il motivo.
Grazie in anticipo a chi mi aiuterà.