蒟蒻求助(c++)
查看原帖
蒟蒻求助(c++)
402211
欢黎明陌楼主2020/12/16 17:19

打了两节课的代码,将近两千代码量; 最后得了五十分,有没有dalao可以来帮忙看看。

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
	short a[10010];
	int i=0;
	char in,junk;
	while ( cin >> in ){
		switch(in){
			case 't':a[++i] = 1;break;//true
			case 'o':a[++i] = 22;break;//or
			case 'f':a[++i] = 2;break;//false
			case 'a':a[++i] = 208;break;//and
			case 'n':a[++i] = 107;break;//not
			default :cout << "error" <<endl;return 0;
		}
		switch(a[i]){
			case 1:{
				for (int i = 1;i <= 4;i ++){
					cin>>junk;
				}
				break;
			}
			case 22:{
				for (int i = 1;i <= 3;i ++){
					cin>>junk;
				}
				break;
			}
			case 2:{
				for (int i = 1;i <= 5;i ++){
					cin>>junk;
				}
				break;
			}
			case 208:{
				for (int i = 1;i <= 3;i ++){
					cin>>junk;
				}
				break;
			}
			case 107:{
				for (int i = 1;i <= 3;i ++){
					cin>>junk;
				}
				break;
			}
			
		}
	}
	for (int j = 1; j <= i ; j ++){
		if ( a[j] != 0 )
			if ( a[j] == 107) {
				switch(a[j + 1]){
					case 1:a[j + 1] = 2;break;
					case 0:a[j + 1] = 1;break;
				}
				a[j] = 0;
			}
	}
	for (int j = 1; j <= i ; j ++){
		if ( a[j] != 0 )
			if ( a[j] == 208) {
				if (a[j-1]==1&&a[j+1]==1) a[j-1]=1;
				else if (a[j-1]==0&&a[j+1]==0) a[j-1]=0;
				else if ((a[j-1]==1&&a[j+1]==0)||(a[j-1]==1&&a[j+1]==0)) a[j-1]=0;
				a[j]=a[j+1]=0;
			}
	}
	for (int j = 1; j <= i ; j ++){
		if ( a[j] != 0 )
			if ( a[j] == 22) {
				if (a[j-1]==1&&a[j+1]==1) a[j-1]=1;
				else if (a[j-1]==0&&a[j+1]==0) a[j-1]=0;
				else if ((a[j-1]==1&&a[j+1]==0)||(a[j-1]==1&&a[j+1]==0)) a[j-1]=1;
				a[j]=a[j+1]=0;
			}
	}
	for (int j = 1; j <= i ; j ++){
		switch(a[j]){
			case 1:cout << "true" <<endl;return 0;
			case 0:cout << "false" <<endl;return 0;
			default :cout<< "error" <<endl;return 0;
		}
	}
	return 0;
}
2020/12/16 17:19
加载中...