si infatti il problema della radice l'ho risolto includendo math.h, anche se non ho capito perchè non me lo segnalava quando lo compilavo (mistero :master: ), mentre il problema dei calcoli sembra risolto con
grazie a tutticodice:x=(c*-1)/(double)b;
adesso il codice è:
e funziona!!codice:#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int a; int b; int c; int d2; double d3; double x; double y; double y2; //risoluzioni espressioni di primo e secondo grado printf("inserisci il valore di a \n"); scanf("%d", &a); printf("inserisci il valore di b \n"); scanf("%d", &b); printf("inserisci il valore di c \n"); scanf("%d", &c); printf("l'espressione inserita e': %d", a); printf("x^2 + %d", b); printf("x + %d", c); printf("=0 \n"); switch (a) { case 0: printf("l'equazione e' di 1^ grado \n"); x=(c*-1)/(double)b; printf("x=%f\n", x); break; default: printf("l'equazione e' di secondo grado \n"); switch (b) { case 0: printf("si tratta di un equazione pura \n"); x=(c*-1); y=sqrt(x/a); printf("i risultati sono: x1=%f", -y); printf("; x2=%f\n", y); break; default: switch (b) { case 0: printf("si tratta di un equazione pura \n"); x=(c*-1); y=sqrt(x/a); printf("i risultati sono: x1=%f", -y); printf("; x2=%f\n", y); break; default: switch (c) { case 0: printf("si tratta di un' equazione spuria \n"); x=(b*-1)/(double)a; printf("i risultati sono: x1=0; x2=%f \n", x); break; default: d2=(b*b-4*a*c); d3=sqrt(d2); y=(-b-d3)/(double)(2*a); y2=(-b+d3)/2*a; y2=(-b+d3)/(double)(2*a); printf("i risultati dell'equazione sono: x1=%f", y); printf("; x2=%f\n", y2); break; } break; } break; } break; } fflush(stdin); system("pause"); return 0; }


Rispondi quotando