Meno male che hai detto senza virgolette nei tag... scusa l'ho letto dopo , lo posto di nuovo e perdonami.
Codice:
#include <stdio.h>
int getmcd( int, int );
main()
{
int b,b2,a,a2,c,y,mcd,differenza;
char segno1[8];
char segno2[8];
printf("Inserisci il segno e il valore del coefficiente e del termine noto di un equazione e riceverai il valore dell'incognita in output tranne nei casi di un equazione impossibile o inderterminata\n\n x=b/a\n\n");
printf("Inserisci il segno del termine noto (es. +/- oppure positivo/negativo) ");
scanf("%s",&segno1);
printf("Valore del termine noto: ");
scanf("%d",&b);
printf("Inserisci il segno del coefficiente (es. +/- oppure positivo/negativo) ");
scanf("%s",&segno2);
printf("Valore del coefficiente: ");
scanf("%d",&a);
b2=b;
a2=a;
if(a==0 && b!=0){
printf("L'equazione è impossibile");
}
else if (a==0 && b==0){
printf("L'equazione è indeterminata, ha infinite soluzioni.\n");
}
else if (a!=0 && b!=0){
mcd=getmcd(b,a);
b2=b2/mcd;
a2=a2/mcd;
differenza=strcmp(segno1,segno2);
if(differenza==0){
printf("L'equazione è determinata. x = + %d%/%d%\n",b2,a2);
}
else{
printf("L'equazione è determinata. x = - %d%/%d%\n",b2,a2);
}
}
printf("Vuoi risolvere un altra incognita?\n1.Si\n2.No\n");
scanf("%d",&y);
switch(y){
case 1:
system("cls");
main();
break;
case 2:
system("cls");
printf("Premi un tasto per uscire...");
getch();
exit(1);
break;
}
}
int getmcd(int n,int d)
{
int c;
while(n>0){
if(d>n){
c=d;
d=n;
n=c;
}
else{
n=n-d;
}
}
}