Sto provando a fare una cosa diciamo più semplice, in pratica mi baso sul calcolo dell'mcd, utilizzo una funzione che creo all'interno del programma che mi calcola il mcd e faccio:
mettendo il caso di un equazione di secondo grado con deltra uguale a 0
num=-b;
den=2*a;
mcd=getmcd(num,den);
num=num/mcd;
den=den/mcd;
printf("La soluzione e' una ed e': %d/%d", num,den);
Solo che dato che non sono arrivato a come si richiama la funzione non so come richiamarla all'interno del programma
L'applicazione è questa:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int getmcd(int,int);
int a,b,c,num,den;
float x,x1,x2,DELTA;
char scelta;
main()
{
printf("Calcolatore di Equazioni di Primo e Secondo Grado\n\n");
printf("Inserisci coefficiente X quadra(se eq. primo grado inserire 0)\n");
scanf("%d",&a);
printf("Inserisci coefficente X\n");
scanf("%d",&b);
printf("Inserisci termine noto\n");
scanf("%d",&c);
if (a==0)
{x=c/b;
printf("La X vale: %g\n\n", x);
}
else
DELTA=b*b-4*a*c;
printf("Il Delta e': %f\n\n", DELTA);
if (DELTA>0)
{x1=(-b-sqrt(DELTA))/2*a;
x2=(-b+sqrt(DELTA))/2*a;
printf("X1 e': %g X2 e': %g\n\n", x1,x2);
}
else if (DELTA==0)
{num=-b;
den=2*a;
mcd=getmcd(num,den);
num=num/mcd;
den=den/mcd;
printf("La soluzione e' una ed e': %d/%d", num,den);
}
else
{printf("L'equazione non ha soluzioni\n\n");
}
printf("Se vuoi inserire una nuova equazione premi y,altrimenti premi un tasto qualsiasi\n");
getchar();
scanf("%c",&scelta);
if (scelta=='y')
{
system("cls");
return main();
}
else exit(0);
int getmcd(int a,int b);
{
int max,min,tmp;
max=(a>b) ? a : b;
if (max==a)
min=b;
else
min=a;
while ((max%min)!=0)
{
max=max-min;
if (max<min)
{
tmp=max;
max=min;
min=tmp;
}
}
return min;
}
}
Ho applicato l'mcd solo nella parte per il delta uguale a 0 ma nn riesce a chiamarmi la funzione, che cosa sbaglio??