2 ylxd41 ylxd41 于 2016.09.15 19:53 提问

麻烦各位给看看呗,顶一下。括号配对

// acm 括号配对.cpp : 定义控制台应用程序的入口点。
//输入样本个数和括号样本,看括号是否可以配成对
例如输入())为错误,()()为正确

#include "stdafx.h"
#include

int _tmain(int argc, _TCHAR* argv[])
{
int n;
char*p;
int s;
char name[21];
p=name;
printf("请输入样本个数:");
scanf("%d",&n);
for(int i=0;i<n;i++)
{
printf("请输入测试样本:");
scanf("%s",&name);
s=strlen(name);
if(s%2!=0)//若输入样本为基数则不可能配对
printf("wrong\n");
else
for(int w=0;w<s;w++)
{
if(*(p+w)==(*(p+s)-w-2))//按顺序进行扫描字符
continue;
else
printf("wrong\n");
}
printf("right\n");
}
return 0;
}

3个回答

caozhy
caozhy   Ds   Rxr 2016.09.15 23:46
ylxd41
ylxd41 谢谢 不过您方便说一下我的错哪里了吗?
一年多之前 回复
Lmikic
Lmikic   2016.09.16 15:42

for(int i=0;i<n;i++)
{
printf("请输入测试样本:");
scanf("%s",&name);

上面这段代码中,如果输入的括号中没有空格间隔的话,不需要循环;还有就是,scanf中的name前面不需要加地址符,因为name已经是一个字符数组了

Lmikic
Lmikic   2016.09.16 15:44

这多说一点:这题用线性栈做会更好点

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!