Sera
avrei svariati problemi con questo programmino che ho creato. quello che mi pare più strano è quello del ciclo while! attraverso il ciclo vorrei reiterare tutto il codice centrale, fino a quando l'utente non cambia il valore della variabile a fine ciclo!
un altro problema è la radice quadrata! non riesco ad usarla a dovere.
sapreste aiutarmi? vi posto il codice!
ps: è un semplice programmino che attraverso svariati if else calcola i risultati di una equazione di primo o secondo grado!
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
//variabile di controllo while
int i=0;
// variabili equazioni
float a;
float b;
float c;
float x;
while (i!=1){
system("cls");
printf("########################\n");
printf("# Risolvi equazioni v1 #\n");
printf("########################\n");
printf("# By Lamberto Basti #\n");
printf("########################\n\n");
printf("Inserisci i valori di a, b e c:\n");
printf("\na="); scanf("%f", &a);
printf("b="); scanf("%f", &b);
printf("c="); scanf("%f", &c);
printf("\n");
//a=0 Equazione di 1° grado
if (a==0&&b!=0&&c!=0){
x=-c/b;
printf("\n L'equazione ha una sola soluzione: x=%f", x);
}
//b=0 Equazione pura
else if (a!=0&&b==0&&c!=0){
x=-c/a;
if (x<0){
float y=-x;
y = sqrtf(x);
printf("\nLequazione ha una soluzione complessa\n\n x=%0.1fi", y);}
else {
float y=sqrtf(x);
printf("L'equazione ha due soluzione reali:\n x=%f\nx=%f", y, -y);}}
//c=0 equazione spuria
else if (a!=0&&b!=0&&c==0){
float x2=-b/a;
printf("L'equazione ha due soluzioni\n\n x=0\nx=%0.1f", x2);}
//a=0 b=0 equazione
else if (a==0&&b==0&&c!=0){
if (c=0){
printf("\nLequazione è sempre verificata per ogni valore di x");}
else{printf("\nL'equazione non è mai verificata");}}
//Equazione normale
else if (a!=0&&b!=0&&c!=0){
float delta=b*b-4*a*c;
//delta<0
if (delta<=0){
float delta1=-delta;
printf("L'equazione ha 2 soluzione complesse:\n\n");
printf("(%0.1f-&0.1fi)/(2%0.1f)", -b, sqrtf(delta1), a);
printf("(%0.1f+&0.1fi)/(2%0.1f)", -b, sqrtf(delta1), a);}
else if (delta==0){
printf("L'equazione ha 2 soluzioni reali coincidenti\n\n");
printf("x=%0.1f", -b/(2*a));}
else {
printf("L'equazione ha 2 soluzioni reali\n\n");
printf("x=%0.1f\n", (-b+sqrtf(delta))/(2*a));
printf("x=%0.1f", (-b-sqrtf(delta))/(2*a));}}
//a=0 c=0 b=0
else if(a==0&&b==0&&c==0){
printf("L'equazione e' verificata per ogni x");}
//a=0 c=0 | b=0 c=0
else {
printf("L'equazione ha una soluzione\n\nx=0");}
printf("\n\n");
printf("> Esci 1\n");
printf("> Indietro 2\n\n");
printf(">"); scanf("&d", &i);
}
return 0;
}