请C语言高手帮忙

来源:百度知道 编辑:UC知道 时间:2024/05/26 10:11:12
C语言面试题:
请完成下列程序,让程序具备能够按照用户输入的计算公式,算出结果的功能。

用户可以输入:i+j+k,程序要得出结果60,
(要求:支持加减乘除和括号)

main()
{
int i=10;
int j=20;
int k=30;
char calc[100];
int m;

printf("请输入i,j,k三个数的计算公式\n");
gets(calc);
....
}

高手帮帮忙。给点提示。。

先谢谢了
char calc[100];
有限制的。。但如果可以实现无限制更好呀。

#include<stdio.h>
void main()
{
int i=10;
int j=20;
int k=30;
char calc[100];
int m;
float result;

printf("请输入i,j,k三个数的计算公式\n");
gets(calc);
result=0;
if(calc[3]=='*' && (calc[1]!='*' || calc[1]!='/'))
result+=20*30;
if(calc[3]=='/' && (calc[1]!='*' || calc[1]!='/'))
result+=20/30.0;
if(calc[1]=='+' && (calc[3]=='*' || calc[3]=='/'))
result+=10;
if(calc[1]=='-' && (calc[3]=='*' || calc[3]=='/'))
result=10-result;

if(calc[1]=='*')
result=10*20;
if(calc[1]=='/')
result=10/20.0;

if(calc[1]=='+' && (calc[3]=='+' || calc[3]=='-'))
result+=10+20;
if(calc[1]=='-' && (calc[3]=='+' || calc[3]=='-'))
result-=20-10;

if(calc[3]=='+')
r