Pagini recente » Cod sursa (job #754066) | Cod sursa (job #3172640) | Cod sursa (job #579531) | Cod sursa (job #1961579) | Cod sursa (job #406692)
Cod sursa(job #406692)
#include <fstream>
#include <math.h>
using namespace std;
ifstream fin("ecuatie.in");
ofstream fout("ecuatie.out");
char s[300],s1[300],s2[300];
int n;
long nr1, nr2, nrx1, nrx2;
void rezolva(char *, long &, long &);
int main()
{ int i;char *p;
fin>>n;
for (i=0; i<n; i++)
{
fin>>s1;
p=strchr(s1,'=');
strcpy(s2,p+1);
*p=NULL;
rezolva(s1, nr1, nrx1);
rezolva(s2, nr2, nrx2);
if (nrx1==nrx2)
if (nr1==nr2)
fout<<"infinit\n";
else
fout<<"imposibil\n";
else
fout<<((double)(nr2-nr1)/(nrx1-nrx2))<<"\n";
}
fin.close();
fout.close();
return 0;
}
void rezolva(char *s, long &nr, long &nrx)
{ char *p, ss[300]; long v; int semn=1, l;
strcpy(ss,s); p=strtok(ss,"+-");
nr=0; nrx=0;
while (p)
{ l=strlen(p);
if(p[0]=='x')
nrx+=semn;
else if(p[l-1]=='x')
{ p[l-1]=NULL;
v=atol(p);
nrx=nrx+semn*v;
}
else
{ v=atol(p);
nr=nr+semn*v;
}
if (s[p+l-ss]=='+')
semn=1;
else
semn=-1;
p=strtok(NULL, "+-");
}
}