求助。。。。一个点都不对,但是下载的数据感觉没有问题。。。QAQ(c++)
查看原帖
求助。。。。一个点都不对,但是下载的数据感觉没有问题。。。QAQ(c++)
66274
liviya楼主2020/10/10 20:59
    #include<bits/stdc++.h>

	using namespace std;

	int main()
	{

	char c, w = '+', e;
	bool b = 1;
	int acc = 0, ch = 0, k = 0, n;
	char s[100005];
    
	while((c = getchar()) != EOF)
	{
		n++;
        
		if(c == '\n')
		{
			if(k != 0) acc += k;
			break;
		}
		s[n] = c;
        
		//数字 
		if(s[n] >= '0' && s[n] <= '9')
		{
			if(b)
			k = k*10 + s[n] -'0';
			else k = k * 10 -(s[n] - '0');
			}
            
		//+、- 和式子左右一起决定符号 (和上一个符号比较,同号则二者移动后符号相同) 
		else if(c == '+'|| c == '-')
		{
			if(k != 0)
				acc += k;
			if(w == c)
			{
				if(b == 0) b = 1;
				else b = 0;
			}
			else
			{
				if(b == 0) b = 1;
				else b = 0;
				w = c;
			}
			k = 0;
		}	
        
		//如果是右边,统一加个-号 
		else if(c == '=')
		{
			if(k != 0)
				acc += k;
			
			b = 0;
			w = '-';
			k = 0;
		}
		
		//看自变量,并将其统一移至右边 
		else 
		{
			e = c;
			if(b && k != 0 ) ch -= k;
			else if(!b && k !=0) ch +=k;
			else if(b) ch -= 1;
			else ch += 1;
			k = 0;
			
		}	
	}
	int f = acc * 10000 /ch;
	float a = float(f) / 10000;
	f %= 10;

	printf("%c=%.3f",e,a);
	return 0;
	} 
   谢谢了
2020/10/10 20:59
加载中...