Pagini recente » Cod sursa (job #361779) | Cod sursa (job #55744) | Cod sursa (job #3166779) | Cod sursa (job #2015454) | Cod sursa (job #1921240)
#include <iostream>
#include <fstream>
#include <string.h>
#include <stdlib.h>
using namespace std;
ifstream f("ecuatii.in");
ofstream g("ecuatii.out");
void rezolva(char *s,float &nr,float &nrx,int &k,char s3[300])
{
char *p,s2[300];
int v, l,semn=1;
nr=0;
nrx=0;
strcpy(s2,s);
p=strtok(s,"+-");
while(p)
{
l=strlen(p);
if(p[0]=='x') nrx=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;
}
p=strtok(NULL,"+-");
if(s3[k]=='+')
semn=1;
else semn=-1;
k++;
}
}
int main()
{
float nr1,nr2,nrx1,nrx2;
int i,n,l,j,k;
char s[300],s1[300],s2[300],*p,s3[300];
f>>n;
f.get();
for(i=0;i<n;i++)
{
f.getline(s,300);
k=0;
l=strlen(s);
for(j=0;j<l;j++)
if((s[j]=='-')||(s[j]=='+'))
{s3[k]=s[j];
k++;
}
k=0;
p=strchr(s,'=');
strcpy(s1,p+1);
*p=NULL;
rezolva(s,nr1,nrx1,k,s3);
rezolva(s1,nr2,nrx2,k,s3);
if(nrx1==nrx2)
if(nr1==nr2)
g<<"infinit"<<endl;
else g<<"imposibil"<<endl;
else g<<(nr2-nr1)/(nrx1-nrx2)<<endl;
}
}