- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试制作可以执行以下操作的反向波兰打印机-
输入:
(a+(b*c))
((a+b)*(z+x))
((a+t)*((b+(a+c))^(c+d)))
输出:
abc*+
ab+zx+*
at+bac++cd+^*
这是我的代码:
#include <stdio.h>
#include <string.h>
char pop(int t);
void push(int c, int t);
int main()
{
int z;
scanf("%d", &z);
char *a[100];
int i = 0;
int q = z;
while (q-- > 0)
{
char v[400];
scanf("%s", &v);
int t;
for (t = 0; t < strlen(v); t++) //loop to put the values and signs in the 2 stacks
{
if ((v[t] == '*') || (v[t] == '+') || (v[t] == '-') || (v[t] == '^'))
{
push(v[t], 2);
}
else if (v[t] == ')')
{
int y = pop(2);
push(y, 1);
}
else
{
push(v[t], 1);
}
}
int k = 0;
char c;
while ((c = pop(1)) !='\0') //loop to put elements in the array v
{
if (c != '(')
{
v[k++] = c;
}
}
v[k--] = '\0';
int m;
for (m=0; m != k; m++, k--) //for reversing the string
{
char t = v[m];
v[m] = v[k];
v[k] = t;
}
a[i++] =v;
printf("%s",a[i - 1]);
}
int p;
for (p = 0; p <z ; p++) //printing the elements
printf("%s\n",*a[p]);
return 0;
}
char ac[400];
char as[400];
int ic = 0;
int is = 0;
void push(int c,int t)
{
if (t == 1 && ic != 400)
ac[ic++] = c;
else if (t == 2 && is != 400)
as[is++] = c;
}
char pop(int t)
{
if (t == 1 && ic != 0)
return ac[--ic];
if (t == 2 && is != 0)
return as[--is];
return '\0';
}
但它甚至没有正确输入,我无法弄清楚这段代码中有什么错误。请帮助找出问题所在。
最佳答案
after inputing the no of test cases i.e.int z and first line if input it crashes
这是由于
printf("%s\n",*a[p]);
正如 BLUEPIXY 所注意到的,*a[p]
是一个 char
;但是 %s
需要一个 char *
,因此你需要
printf("%s\n", a[p]);
关于v
超出范围,关键因素不是范围(可见性),而是v
的存储持续时间(lifetime) code> - 当与其关联的 block 的执行结束时,它的生命周期结束,并且指向它的指针 a[i]
的值变得不确定;通过改变
a[i++] =v;
到
a[i++] = strdup(v);
你可以补救。
关于c - 反向抛光转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28459220/
我正在创建一个车载控制屏幕(将在 Mac Mini 上运行),并正在寻找一些“效果”的库或代码示例。例如,我可能希望当前播放的轨道的名称从右侧飞入。我可能希望屏幕淡入淡出或向上滑动等。 我知道我可以在
这是我当前的查询:使用 Java+mongoDB { BasicDBObject select = new BasicDBObject(); select.put("info.
我正在阅读一个包含德语、法语、西类牙语、英语和波兰语文本的 xml 文件。 为了处理波兰语字母(这引起了最多的麻烦),我尝试这样做: File file = new File(path); Input
例如,您建议使用什么方法来规范化 Java 中的文本 String raw = " This is\n a test\n\r "; String txt = normalize(raw); as
我正在开发以下网站的移动版本:http://provenioexclusive.com CSS 在台式机、笔记本电脑和 iPad 设备上运行完美。但是,当为移动设备调整窗口大小时,产品列表的宽度都被弄
我正在寻找使用递归解析前缀表达式的代码。主要使用 C++,但也可以使用其他语言,我会翻译。谢谢。 最佳答案 自己做真的很容易(您只需要一个运算符堆栈(有时/可选地是它的第一项))。 但如果你真的不想做
我在从 Facebook 下载数据事件时遇到一些问题。我有一个站点,add.php,- 这个站点是 UTF-8,接下来我要向 mysql 发送数据(utf-8) 然后我在网站上显示信息 (iso-88
我是一名优秀的程序员,十分优秀!