将一个数学表达式存入数组 10

将一个数学表达式存入数组。比如将表达式“23+4*10+1/2=”存入数组A[]。要求:A[0]=23,A[1]=+,A[2]=4,A[3]=*,A[4]=10等。23必... 将一个数学表达式存入数组。
比如将表达式“23+4*10+1/2=”存入数组A[]。
要求:A[0]=23,A[1]=+,A[2]=4,A[3]=*,A[4]=10等。
23必须是存入A[0]哈不是单个单个字符存。
在线等哈,谢谢。
展开
 我来答
plmday
2010-06-28 · TA获得超过474个赞
知道小有建树答主
回答量:143
采纳率:0%
帮助的人:243万
展开全部
由于字符类型char在C里面上也属整型,所以你的数组可以如下声明:

int A[] = {23, '+', 4, '*', 10, '+', 1, '/', 2};

但是这样做有一个不好的地方,就是当你访问一个数组元素时,你没法区分你拿到的是操作符还是操作数。因为你只能确定你拿到的是一个整数。如果你需要区分,比如打印储存的表达式的时候,你得给你的数组原书贴上标签:

enum alt { opr, opd }; /* 0 表示操作符,1 表示操作数 */

struct atom {
char tag;
int obj;
};

下面是一个例子。打印出储存的表达式 1+2

#include <stdio.h>

enum alt { opr, opd };

typedef struct atm {
char tag;
int obj;
} atm_t;

void show(atm_t);

int
main(void)
{
atm_t exp[] = { {opd, 1}, {opr, '+'} , {opd, 2} };

int i;

for ( i = 0; i < 3; ++i )
show(exp[i]);

putchar('\n');

return 0;
}

void
show(atm_t a)
{
switch (a.tag) {
case 0: printf("%c", a.obj); break;
case 1: printf("%d", a.obj); break;
}
}
守候一依
2010-07-04
知道答主
回答量:6
采纳率:0%
帮助的人:3.4万
展开全部
在办公软件上否认工具栏有插入,再里面选择需要插入的形式,就可以了!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
FeliciaCrazy
2010-06-28 · 超过28用户采纳过TA的回答
知道答主
回答量:112
采纳率:0%
帮助的人:72万
展开全部
你的数组A是char*数组吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式