printf("%c=%.3f",unk,(double)(-c)/(double)(x));
啊这是我整个程序里唯一一个输出了,怎么就读出来回车了呢?
六个测试点全部都是这样的评测记录,用O2,用C用C++都是这样。。。
附整段代码,求解于大神
#include<stdio.h>
#include<stdbool.h>
struct sum{
bool ms;
int wt;
}temp;
char unk;
int x,c; long double ans;
int main()
{
char get;
while(get=getchar(),get!='=')
{
if('0'<=get&&get<='9')
temp.wt=temp.wt*10+get-'0';
else if(get=='-')
{
if(temp.ms){c-=temp.wt;
}
else
c+=temp.wt;
temp.ms=true;
temp.wt=0;
}
else if(get=='+')
{
if(temp.ms)
c-=temp.wt;
else
c+=temp.wt;
temp.ms=false;
temp.wt=0;
}
else if(get!=' ')
{
unk=get;
if(temp.wt==0) temp.wt=1;
if(temp.ms)
x-=temp.wt;
else
x+=temp.wt;
temp.wt=0;
}
}
if(temp.ms)
c-=temp.wt;
else
c+=temp.wt;
temp.wt=0;
while(get=getchar(),get!='\n')
{
if('0'<=get&&get<='9')
temp.wt=temp.wt*10+get-'0';
else if(get=='-')
{
if(temp.ms)
c+=temp.wt;
else
c-=temp.wt;
temp.ms=true;
temp.wt=0;
}
else if(get=='+')
{
if(temp.ms)
c+=temp.wt;
else
c-=temp.wt;
temp.ms=false;
temp.wt=0;
}
else if(get!=' ')
{
unk=get;
if(temp.wt==0) temp.wt=1;
if(temp.ms)
x+=temp.wt;
else
x-=temp.wt;
temp.wt=0;
}
}
if(temp.ms)
c+=temp.wt;
else
c-=temp.wt;
printf("%c=%.3f",unk,(double)(-c)/(double)(x));
return 0;
}