2018复旦机试第2题,自己再看

// 2018 复试第2题.cpp : 定义控制台应用程序的入口点。
/*解方程。    给定一个字符串,代表一个 一元一次 方程。 
              如果有解求解,输出格式“x=数字” ,如果解的个数无穷,输出 “infinite solutions”。
			  如果 没有解输出“no solution”
              字符串 长度不超过 256 。 样例:
               10x-2x-8=4x+7+x  输出:x=5 */

#include "stdafx.h"
#include 
#include 
#include 
using namespace std;

char s[260];


int _tmain(int argc, _TCHAR* argv[])
{
	scanf("%s",s);
    int len = strlen(s);

	//寻找等号
	int d; int i;
	for(i = 0;i= '0' && s[i] <= '9'){
			  t = t*10+ (s[i] - '0');
			  i++;
		  }

		  if(i < d && s[i] == 'x'){//是未知数的系数
			  coel += flag * t; i++;
		  }else {//是常数

			  conl += flag * t;
			  i++;
		  }

	   }else if(i < d && (s[i] == '+' || s[i] == '-') ){//为符号的情况
		   
		   if(s[i] == '-'){
			   flag = -1;
		   }
		   else flag =1;

		   i++;

		   int t = 0;
		   while(i= '0' && s[i] <= '9'){//为数字的情况
			  t = t*10+ (s[i] - '0');
			  i++;
		  }

		   if(i='0' && s[i] <= '9'){
		  int t = 0;
          while(i= '0' && s[i] <= '9'){//为数字的情况
			  t = t*10+ (s[i] - '0');
			  i++;
		  }

		  if(i < len && s[i] == 'x'){//是未知数的系数
			  coer += flag*t; i++;
		  }else{//是常数
			  conr += flag*t; i++;
		  }

	   }else if(i < len && (s[i] == '+' || s[i] == '-') ){//为符号的情况
		   
		   if(s[i] == '-'){
			   flag = -1;
		   }else {
			   flag =1;
		   }

		   int t = 0;
		   while(i= '0' && s[i] <= '9'){//为数字的情况
			  t = t*10+ (s[i] - '0');
			  i++;
		  }

		   if(i

 

你可能感兴趣的:(复旦机试题目)