📄 convert.c
字号:
#include<stdio.h>
#include<string.h>
char str[50][1000],si[1000],t[1000];
long gra[1000];
int main(){
long l,sn,i,j,k;
gets(si);
l=strlen(si);
sn=0;
i=0;j=0;
while (j<l){
while ((j<l)&&(si[j]!=' '))
j++;
if ((j==i+1)&&(si[i]=='+')){
sn--;
if (gra[sn-1]<0){
strcpy(t,str[sn-1]);
strcpy(str[sn-1],"(");
strcat(str[sn-1],t);
strcat(str[sn-1],")");
}
strcat(str[sn-1],"+");
if ((gra[sn]==1)||(gra[sn]==2)||(gra[sn]<0)){
strcpy(t,str[sn]);
strcpy(str[sn],"(");
strcat(str[sn],t);
strcat(str[sn],")");
}
strcat(str[sn-1],str[sn]);
gra[sn-1]=1;
gra[sn]=0;
}
else if ((j==i+1)&&(si[i]=='-')){
sn--;
if (gra[sn-1]<0){
strcpy(t,str[sn-1]);
strcpy(str[sn-1],"(");
strcat(str[sn-1],t);
strcat(str[sn-1],")");
}
strcat(str[sn-1],"-");
if ((gra[sn]==1)||(gra[sn]==2)||(gra[sn]<0)){
strcpy(t,str[sn]);
strcpy(str[sn],"(");
strcat(str[sn],t);
strcat(str[sn],")");
}
strcat(str[sn-1],str[sn]);
gra[sn-1]=2;
gra[sn]=0;
}
else if ((j==i+1)&&(si[i]=='*')){
sn--;
if ((gra[sn-1]==1)||(gra[sn-1]==2)||(gra[sn-1]<0)){
strcpy(t,str[sn-1]);
strcpy(str[sn-1],"(");
strcat(str[sn-1],t);
strcat(str[sn-1],")");
}
strcat(str[sn-1],"*");
if (gra[sn]!=0){
strcpy(t,str[sn]);
strcpy(str[sn],"(");
strcat(str[sn],t);
strcat(str[sn],")");
}
strcat(str[sn-1],str[sn]);
gra[sn-1]=3;
gra[sn]=0;
}
else if ((j==i+1)&&(si[i]=='/')){
sn--;
if ((gra[sn-1]==1)||(gra[sn-1]==2)||(gra[sn-1]<0)){
strcpy(t,str[sn-1]);
strcpy(str[sn-1],"(");
strcat(str[sn-1],t);
strcat(str[sn-1],")");
}
strcat(str[sn-1],"/");
if (gra[sn]!=0){
strcpy(t,str[sn]);
strcpy(str[sn],"(");
strcat(str[sn],t);
strcat(str[sn],")");
}
strcat(str[sn-1],str[sn]);
gra[sn-1]=4;
gra[sn]=0;
}
else{
for (k=i;k<j;k++)
str[sn][k-i]=si[k];
str[sn][j-i]='\0';
if (str[sn][0]=='-')
gra[sn]=-1;
else
gra[sn]=0;
sn++;
}
i=j+1;j=i;
}
printf("%s\n",str[0]);
scanf("%ld",&sn);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -