问题补充:
如何用简单的C语言实现带有括号的四则运算
答案:
考虑复杂的表达式,不可能简单吧.
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
void SplitK(char *str);
void SplitPrem(char *str);
void Combine(float f1,char Operate,float f2);
void StringBracket(char *str);
char str1[100],str2[100],str3[100],sub_str1[100],sub_str2[100],sub_str3[20];
char sub_str31[20],sub_str32[20],str_4[100],operate;
int pause=0,left=0,k1,k2,k3;
float f1=0.0,f2=0.0, f=0.0;
void main()
{ float temp;
printf(Please input a description :\n);
scanf(%s,&str1);
SplitK(str1);
temp=atof(str1);
printf(description value is %.2f\n,temp);
}void SplitK(char *str)
{ int i,j,k,l,jk;
left=0;
while(*str) {
if(*str == () left++;
str++;
} str2[0]=\ ;
str3[0]=\ ;
if(left>0)
{ StringBracket(str1);
j=strlen(str1);
for( i=0; i<j; i++)
{ if(str1[i]== ()
{jk=0;for( k=i; k<j; k++){if(str1[k]== )) break;for( l=i+1; l<k-1; l++){if(str1[l]== ()}}if(jk==0){ for(l=0; l<i; l++) str2[l]=str1[l]; str2[i]=\ ; for(l=k+1; l<j; l++) str3[l-k-1]=str1[l]; str3[j-k-1]=\ ; for(l=i+1; l<=k-1; l++) str1[l-i-1]=str1[l]; str1[k-i-1]=\ ; break;} } } } SplitPrem(str1);