如何用简单的C语言实现带有括号的四则运算

发布时间:2021-03-15 06:03:57

如何用简单的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]='\0';
str3[0]='\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]='\0'; for(l=k+1; l<j; l++) str3[l-k-1]=str1[l]; str3[j-k-1]='\0'; for(l=i+1; l<=k-1; l++) str1[l-i-1]=str1[l]; str1[k-i-1]='\0'; break;} } } } SplitPrem(str1);
以上问题属网友观点,不代表本站立场,仅供参考!