float strtof();main(x,s){char*p;float n,m;for(;gets(p=s);puts("0"+!!x))for(x=0;*p;x=n?printf(!--m||n+1?!m||rint(n)-1?x?"%+g":"%g":"+"+!x:"-",n)+printf(m?m-1?"x^%g":"x":"",m):x)n=*p>99?1:*p<46&p[1]>99?44-*p++:strtof(p,&p),n*=m=*p>99?*++p>93?strtof(++p,&p):1:0;}
Note that non-ascii characters in the above source code will be escaped (such as \x9f).