在C类程序设计中可否把运算符置于一数组中

来源:百度知道 编辑:UC知道 时间:2024/09/22 14:24:50
我要实现的功能是,如:a+b a-b a*b a/b;可否把其中的加减乘除放于一个数组中,然后用循环来做呢,例: char[4]={"+","-","*","/"};
for(int i=0;i<4;i++)
a char[i] b;
这种方法我知道编译时通不过,但是我就是要想实现这种功能,麻烦各位高手帮忙想个算法!谢谢!
其实我是想实现一个算24点的程序,题目是,输入任意四个数(和扑克的规则一样),然后系统会自动帮你生成运算式子!就是这个问题了!拜托大家讲下思路,源代码也行!

首先,这样做是不对的,双引号里的内容永远是字符窜,不会被当作字符来处理。
其次,两个整数之间不能用数组连接。
#include<stdio.h>
main()
{ int i;
int a=2,b=3,c;
char abc[4]={'+','-','*','/'};
for(i=0;i<4;i++)
{
if (abc[i]=='+')
c = a + b;
else if(abc[i]=='-')
c = a - b;
else if(abc[i]=='*')
c = a * b;
else
c = a/b;
printf("%d\n",c);
}
getch();
}
这是我写的,尽量按搂主的要求写的,转了个弯子。

你这个要求我原样还真是不会,可以考虑个变通的方法,循环时传递a,b,i三个参数给函数,函数根据i的值返回a+b a-b a*b a/b的结果。

我认为不行~
原因:你只是把"+","-","*","/"四个字符分别存放到数组char[4]中,系统已经把它们当成了普通的字符,a char[i] b; 这样放来运算是不能够实现的.

你可以用switch来做:
for(i=0;i<4;i++)
{
switch(a[i])
{
case "+":
return a+b;
case "-":
return a-b