简单题:不等式(知道了运算符号算是字符可以定义为char类型)待解决

  今天有点忙,没来得及写题看cs50,本来打算刷一题就去碎觉(~﹃~)~zZ困

然后遇到了,伪装的 很简单,实际上我还是不会的这一题,没看答案前,懵,困得大脑停止运转,不过尝试了一下,哇塞,原来运算符号算是字符可以定义为char类型

  不过,如何将读入的转化为条件,看了眼答案,觉得智商受到侮辱,为什么我就没想到可以先通过if语句判断输入的运算符是哪一个,然后再用选择语句进行不同的运算。顿时精神,不过还是决定明天再看,电脑电量不多了==,主要我的电量更不多了,困,明日补上。




不等式

时间限制: 10000ms
单点时限: 1000ms
内存限制: 256MB

描述

给定n个关于X的不等式,问最多有多少个成立。

每个不等式为如下的形式之一:

X < C

X <= C

X = C

X > C

X >= C

输入

第一行一个整数n。

以下n行,每行一个不等式。

数据范围:

1<=N<=50,0<=C<=1000

输出

一行一个整数,表示最多可以同时成立的不等式个数。

样例输入
4
X = 1
X = 2
X = 3
X > 0
样例输出
2

第二天

#include 
#include 
#include 
#include 
	using namespace std;
	int main()
	{
		int n,  y, o[55], totle=0;
		char x,fuhao[55];
		cin >> n;
		for(int i = 0 ; i>x>>fuhao[i]>>y;
		}
		for(int j = 0 ; j < n; j++){	
			if(fuhao[j] == '<'){
				o[j] = 0;
			}	
			else if(fuhao[j] == '<='){
				o[j] = 1;
			}
			else if(fuhao[j] == '='){
				o[j] = 2;
			}
			else if(fuhao[j] == '>'){
				o[j] = 3;
			}
			else if(fuhao[j] == '>='){
				o[j] = 4;
			}
		}
		for(x = 0; x < 1001; x++){
			int tot = 0;
			for(int k = 0 ; k < n; k++){
				switch(o[k]){
				case 0:{
					if(x <  y)
					tot++;
					}
				
				case 1:{
					if(x <= y)
					tot++;
					}
				case 2:{
					if(x = y)
					tot++;
					}
				case 3:{
					if(x > y)
					tot++;
					}
				case 4:{
					if(x >= y)
					tot++;
					}
				if(tot > totle)
					totle = tot;
				}
			}		
		}
		cout << totle;
		return 0;
	 } 
今天是第二天,写了一份一看就造 Time Limit Exceeded  

思路还是有点混乱,酱样子的枚举未免太过麻烦,可是想不出好法子

而且应该把x+0.5,用小数枚举,这个表示理解,数学问题,其他的答案还是迷糊看不懂,明日接着做这道题,诶,基础不好,笨蛋阿傻要多用心认真点啊!!!


你可能感兴趣的:(个人日志)