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

📄 calculator.cpp

📁 计算器
💻 CPP
字号:
#include<stdio.h>
int quan(char c){
    int qq;
    qq=0;
    switch(c){
       case '^' : qq=4;break;
       case '/' : 
       case '*' : qq=3;break;
       case '+' : 
       case '-' : qq=2;break;
       case '(' : 
       case ')' : qq=1;break;
       case ';' : qq=0;break;
       default : qq=-1;break;
     }
    return(qq);
   }
void main() {
	  int d,k,right,rightop,z,x,y,shu[10];
	  char c,top,f,fu[10];
       for(k=0;k<=9;k++){
				 shu[k]=0; 
	             fu[k]=' ';
	   }
	   fu[0]=';';
	   for(k=0;k<=9;k++) {
		  printf("%d%c", shu[k],fu[k]);
		    }
	   printf("\n");
	  f=' ';
	  top=';';
	  c=' ';
	  x=0;
      y=0;
	  z=0;
	  k=0;
	  right=0;
	  rightop=0;
	  d=c;
	  while(d!=59||top!=';'){
		  c=getchar();
		  d=c;    
		  if(d==10){ break; }
		  for(k=0;k<=9;k++) {
		      if(fu[k]==' ')  break;
		   } 
		  if(k==0) top=' ';
		  else if(k>0)  top=fu[k-1];
	  if(48<=d&&d<=57)  { 
		 for(k=0;k<=9;k++){
				      if(shu[k]==0) break;  }
			   shu[k]=(d-48); 
			 // printf(" %d",shu[k]);
			   continue;
		 }
	  else{
             right=quan(c);   
			 rightop=quan(top);
			 if(right>rightop||d==40) {
			     for(k=0;k<=9;k++){
				      if(fu[k]==' ')  break; }
					  fu[k]=c;  
					  top=c;
				      //printf(" %c",fu[k]);
			 }
                                 
                                
	         else if(d==41&&top=='(')     
			      for(k=0;k<=9;k++) {  if(fu[k]==' ')  fu[k-1]=' ';   }
                           
		     else {                   // ji suan      
			 while(right<=rightop){
				  for(k=0;k<=9;k++) {
				      if(fu[k]==' ') break;}
				         if(k==0)  printf("error");
				         else if(k>0) f=fu[k-1];  
						 fu[k-1]=' ';
				  for(k=0;k<=9;k++) {
				        if(shu[k]==0) break;}
				        if(k==0) printf("error");
						else if(k>0)  y=shu[k-1];  
						shu[k-1]=0;
				  for(k=0;k<=9;k++) {
				        if(shu[k]==0) break;}
				        if(k==0) printf("error");
						else if(k>0)  x=shu[k-1]; 
				        shu[k-1]=0;
            switch(f){
             case '^' : z=(x^y);break;
             case '/' : z=(x/y);break;
             case '*' : z=(x*y);break;
             case '+' : z=(x+y);break;
             case '-' : z=(x-y);break;
             default :  break;
                  }
			 for(k=0;k<=9;k++) {
				   if(shu[k]==0) break;}
			       shu[k]=z;   
				   z=0; 
				   x=0; 
				   y=0;
				   f=' ';
		     for(k=0;k<=9;k++) {
				 if(fu[k]==' ') break; }
				 if(k==0)top=' ';
				 else if(k>0) top=fu[k-1]; 
				 rightop=quan(top); 
			     // end of the first circle 
			 if(right>rightop)  
			     for(k=0;k<=9;k++){
					 if(fu[k]==' ') { fu[k]=c; top=c;break; }
				 }
			else if(d==41&&top=='(')  {   
				for(k=0;k<=9;k++)   if(fu[k]==' ') { fu[k-1]=' '; break; }   
				       top=fu[k-2];
				       break; }
			       
			if(right==0&&rightop==0) {  //printf("the end!");  
			                            break;  }    //// the te shu  

			 }     // while is end here
		 }      //end else
	  }   // end else 
	  for(k=0;k<=9;k++) {
		      if(fu[k]==' ')  break; }
	  if(k==0) top=' ';
	  else if(k>0) top=fu[k-1]; 
	  if(right==0&&rightop==0) { //printf("END!");  
			                          break;  }
	  }     // end while 
	  
	  printf("the result is %d ",shu[0]);
	  printf("\n press enter key ");
	  getchar();
	  getchar();
	  }
 
		   

⌨️ 快捷键说明

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