Pagini recente » Cod sursa (job #1376299) | Cod sursa (job #1124257) | Cod sursa (job #2792494) | Cod sursa (job #2157888) | Cod sursa (job #699415)
Cod sursa(job #699415)
#include<fstream>
#include<stdlib.h>
#include <cstdio>
#include <cstring>
using namespace std;
ifstream fin("ecuatii2.in");
ofstream out("ecuatii2.out");
int main ()
{
char a[226];
int n,i,k,q=0,nn;
float a1=0,b1=0,a2=0,b2=0;
fin>>nn;
for(k=1;k<=nn;k++)
{
fin>>a;
a1=0;a2=0;b1=0;b2=0;q=0;n=0;
for(i=0;i<strlen(a);i=i+1)
{
if(q==0)
{ n=0;
if(a[i]=='+'||(i==0&&a[i]>='0'&&a[i]<='9'))//pozitive inaintea egalului
{
if(a[i]=='+')
i++;
while(a[i]>='0'&&a[i]<='9')
{
n=n*10+a[i]-'0';
i++;
}
if(a[i]!='x')
{a1=a1+n;i--;
}
else
{b1=b1+n;}
}
else
if(a[i]=='-')//negative inaintea egalului
{i++;
while(a[i]>='0'&&a[i]<='9')
{
n=n*10+a[i]-'0';
i++;
}
if(a[i]!='x')
{a1=a1-n;i--;}
else
{
b1=b1-n;
}
}
}
else
{ n=0;
if(a[i]=='+'||(a[i-1]=='='&&a[i]>='0'&&a[i]<='9'))//pozitive dupa egalului
{ if(a[i]=='+')
i++;
while(a[i]>='0'&&a[i]<='9')
{
n=n*10+a[i]-'0';
i++;
}
if(a[i]!='x')
a2=a2+n;
else
b2=a2+n;
}
else
if(a[i]=='-')//negative inaintea egalului
{i++;
while(a[i]>='0'&&a[i]<='9')
{
n=n*10+a[i]-'0';
i++;
}
if(a[i]!='x')
a2=a2-n;
else
b2=b2-n;
}
}
if(a[i]=='=')
q=1;
}
if(b1==b2&&a1==a2)
out<<"infinit"<<"\n";
else
if(b1==b2&&a1!=a2)
out<<"imposibil"<<"\n";
else
out<<(a2-a1)/(b1-b2)<<"\n";
}
return 0;
}