Cod sursa(job #1370984)

Utilizator andi12Draghici Andrei andi12 Data 3 martie 2015 18:27:59
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.76 kb
#include <cstdio>

using namespace std;
char s[260];
int main()
{
    FILE *in,*out;
    in=fopen("ecuatii2.in","r");
    out=fopen("ecuatii2.out","w");
    int n,i,p,semn,val,ok,peste;
    double ras,nrx,numar;
    char c;
    fscanf(in,"%d",&n);
    c=fgetc(in);
    for(i=1;i<=n;i++)
    {
        fscanf(in,"%s",&s);
        p=0;
        ok=1;
        nrx=0;
        numar=0;
        while(s[p]!=0 && s[p]!='\n')
        {
            peste=1;
            semn=1;
            val=0;
            if(s[p]=='=')
            {
                p++;
                ok=-1;
                peste=0;
            }
            if(s[p]=='-')
            {
                p++;
                semn=-semn;
                peste=0;
            }
            if(s[p]=='+')
            {
                p++;
                peste=0;
            }
            while(s[p]>='0' && s[p]<='9')
            {
                val=val*10+s[p]-'0';
                p++;
                peste=0;
            }
            if(s[p]=='x')
            {
                p++;
                nrx=nrx+val*(semn*ok);
                peste=0;
                if(val==0)
                    nrx=nrx+ok*semn;
            }
            else
                numar=numar+val*(semn*ok);
            if(peste==1)
                p++;
        }
        numar=-numar;
        if(nrx==0 && numar==0)
            fprintf(out,"infinit\n");
        if(nrx==0 && numar!=0)
            fprintf(out,"imposibil\n");
        if(nrx!=0)
        {
            if(numar!=0)
            {
                ras=numar/nrx;
                fprintf(out,"%.4lf\n",ras);
            }
            else
                fprintf(out,"0.0000\n");
        }
    }
    return 0;
}