⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 opration prior new.cpp

📁 相当强悍
💻 CPP
字号:
// Opration Prior New.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <io.h>
#include <stdlib.h>
#include <math.h>

int check=10;

int change(char *cd1,int a){
  int i,o=0,c,j;
  for(i=0;i<a;i++){
    c=1;
    for(j=a-1;j>=i;j--){
      if(j==i) c=1*c;
      else c=c*10;
    }
    o=o+(cd1[i+1]-48)*c;
  }
  return(o);
}

int Count(int a,int b,char c){
  int dd;
  switch(c){
    case '*':dd=a*b;break;
    case '/':dd=a/b;break;
    case '+':dd=a+b;break;
    case '-':dd=a-b;break;
    default :printf("Error!");
  }
  return(dd);
}

char compare(char a,char b)
{
  if(a=='*'&&b=='/') return('>');
  if(a=='/'&&b=='*') return('>');
  if(a=='+'&&b=='-') return('>');
  if(a=='-'&&b=='+') return('>');
  if(a=='*'&&b=='+') return('>');
  if(a=='*'&&b=='-') return('>');
  if(a=='/'&&b=='+') return('>');
  if(a=='/'&&b=='-') return('>');
  if(a=='+'&&b=='*') return('<');
  if(a=='+'&&b=='/') return('<');
  if(a=='-'&&b=='*') return('<');
  if(a=='+'&&b=='*') return('<');
  if(a=='*'&&b=='(') return('<');
  if(a=='/'&&b=='(') return('<');
  if(a=='+'&&b=='(') return('<');
  if(a=='-'&&b=='(') return('<');
  if(a=='*'&&b==')') return('>');
  if(a=='/'&&b==')') return('>');
  if(a=='+'&&b==')') return('>');
  if(a=='-'&&b==')') return('>');
  if(a=='('&&b=='*') return('<');
  if(a=='('&&b=='/') return('<');
  if(a=='('&&b=='+') return('<');
  if(a=='('&&b=='-') return('<');
  if(a==')'&&b=='*') return('>');
  if(a==')'&&b=='/') return('>');
  if(a==')'&&b=='+') return('>');
  if(a==')'&&b=='-') return('>');
  if(a=='*'&&b==';') return('>');
  if(a=='/'&&b==';') return('>');
  if(a=='+'&&b==';') return('>');
  if(a=='-'&&b==';') return('>');
  if(a=='#'&&b=='*') return('<');
  if(a=='#'&&b=='/') return('<');
  if(a=='#'&&b=='-') return('<');
  if(a=='#'&&b=='+') return('<');
  if(a=='#'&&b==';') return('=');
  if(a=='('&&b=='(') return('<');
  if(a==')'&&b==')') return('>');
  if(a==')'&&b=='#') return('>');
  if(a=='*'&&b=='*') return('>');
  if(a=='/'&&b=='/') return('>');
  if(a=='+'&&b=='+') return('>');
  if(a=='-'&&b=='-') return('>');
  if(a=='('&&b==')') return('=');
  if(a==')'&&b==';') return('>');
  return 0;
}


int main(int argc, char* argv[])
{
	FILE *fp,*fq;
	char c1[100],c;
	char chuan[100];
	int c2[100],i=0,j=0,result,ii=0,a,b;
	fp=fopen("document1.txt","wr");
	if(!fp) printf("Open File Error!");
	else
	{
		printf("Please Input biao da shi :\n");//以“;#”结尾,不能以(开头
		while((c=getchar())!='#') fprintf(fp,"%c",c);
		fclose(fp);
//		cifa();
//		yufa();
		if(check==10)
		{
//			printf("yufa OK!");
			fp=fopen("document1.txt","r");
			fq=fopen("document3.txt","w");
			if(!fq||!fp) printf("file not open!");
			else
			{
				fscanf(fp,"%c",&c);
				fprintf(fq," %c ",c);
			//	fscanf(fp,"%c",&c);
				while(c!=';')
				{
					fscanf(fp,"%c",&c);
					while(c!='+'&&c!='-'&&c!='*'&&c!='/'&&c!='('&&c!=')'&&c!=';')
					{
						fprintf(fq,"%c",c);
						fscanf(fp,"%c",&c);
					}
					fprintf(fq," %c ",c);
				}
				fclose(fp);
				fclose(fq);
			}
		}
		else
		{
			printf("yufa Error!");
	
		}
	}

	for(i=0;i<100;i++) {c1[i]=' ';c2[i]=0;}
	c1[j++]='#';
	fp=fopen("document3.txt","r");
	fscanf(fp,"%c",&c);
	i=0;
	while(c!=';'||c1[j-1]!='#')
	{
		if(c!='*'&&c!='/'&&c!='+'&&c!='-'&&c!='('&&c!=')'&&c!=';'&&c!=' ')
		{
			i=0;
			while(c>='0'&&c<='9')
			{
				i++;
				chuan[i]=c;
				fscanf(fp,"%c",&c);
			}
			ii++;
			c2[ii]=change(chuan,i);
		}
		if(c==' ') fscanf(fp,"%c",&c);
		if(c=='*'||c=='/'||c=='+'||c=='-'||c=='('||c==')'||c==';')
		{
			switch(compare(c1[j-1],c))
			{
				case '<':
					c1[j++]=c;
					fscanf(fp,"%c",&c);
					break;
				case '=':
					j=j-1;
					fscanf(fp,"%c",&c);
					break;
				case '>':
					if(ii>=2)
					{
						a=c2[ii];ii=ii-1;
						b=c2[ii];
						result=Count(b,a,c1[--j]);
						c1[j]=c;
						c2[ii]=result;
						break;
					}
					else
					{
						c1[j++]=c;
						fscanf(fp,"%c",&c);
						break;
					}
			}

		}
	}
	printf("\nresult->%d\n",result);

	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -