2 ylxd41 ylxd41 于 2016.09.15 17:28 提问

求助,括号配对问题,c语言

// 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;
}

2个回答

smileufo
smileufo   2016.09.15 17:52

我是学生一枚,括号是否可以配对什么意思?看了一下你的程序,到最后都会执行printf("right\n");哟,真的要这样吗?

smileufo
smileufo 回复ylxd41: 如果是判断是否成对会比较难吧,要看ASCII表,成对的符号对应的ASCII码也没有规律。如果只是判断abccba,((abba((这样的就容易一些。
接近 2 年之前 回复
ylxd41
ylxd41 不是,例如输入((),显示wrong 输入(),显示right 组成完整成对的括号
接近 2 年之前 回复
smileufo
smileufo   2016.09.15 22:16

/********* 只是实现了例如 "abc(dd(cba" **********/
#include "stdio.h"
#include "string.h"
int main()
{
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
{
int w;
for(w=0;w<s/2;w++)
if(*(p+w)==*(p+s-w-1))//按顺序进行扫描字符
continue;
else
{
printf("wrong\n");
break;

}

if(w==s/2)
printf("right\n");
}
}
return 0;

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
[NYOJ] 02括号配对问题(c语言链栈实现)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=2 括号配对问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述现在,有一行括号序列,请你检查这行括号是否配对。 输入第一行输入一个数N(0 输出每组输入数据的输出占一行,如果该字符串中所含的括号是配对
C语言 括号 配对 不相交
题目如下: 判断一个字符序列中(与)、[与]、{与}是否配对且互不相交 分析: 如果只要求配对的话,直接统计这些字符的两两对应数目是否相等即可, 但关键点在于互不相交,互不相交是什么意思呢,离得最近的左右括号一定是相同类型的,去掉这两个括号,再按这个规则匹配,最后可以把括号全部去掉,那就是互不相交的 注意一点,写代码千万别乱复制粘贴,要认真仔细 写程序之前要先把思路理清
(C语言)括号匹配问题
题目描述 现在,有一行括号序列,里面只包含"(",")","[","]"四种符号,请你检查这行括号是否配对。 如:  []是匹配的  ([])[]是匹配的  ((]是不匹配的  ([)]是不匹配的  输入 第一行输入一个数N(0 输出 每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No 样例输入 3 [
C语言 括号匹配问题
定义一个计数器用来判断正反括号的数量,遇见  {  则count+1,当遇见count不为0且当前字符为 } 时,count-- 若count=0且当前字符为 } 时括号一定不匹配,循环直到EOF,判断count值来知道括号是否匹配 #include int main() { int ch; int count=0; while( (ch=getchar()) != EOF )
括号配对问题 (南阳理工oj-题目2)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=2 括号配对问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述现在,有一行括号序列,请你检查这行括号是否配对。 输入第一行输入一个数N(0 输出每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输
c语言栈实现括号匹配
在文字处理软件或编译程序设计时,常常需要检查一个字符串或一个表达式中的括号是否相匹配? 匹配思想:从左至右扫描一个字符串(或表达式),则每个右括号将与最近遇到的那个左括号相匹配。则可以在从左至右扫描过程中把所遇到的左括号存放到堆栈中。每当遇到一个右括号时,就将它与栈顶的左括号(如果存在)相匹配,同时从栈顶删除该左括号。 算法思想:设置一个栈,当读到左括号时,左括号进栈。当读到右括号时,则从栈中弹
【南阳理工OJ】2--括号配对问题(栈与队列)
括号配对问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述现在,有一行括号序列,请你检查这行括号是否配对。 输入第一行输入一个数N(0 输出每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No 样例输入 3 [(]) (]) ([[]()]) 样例输出 No No Yes
数据结构之---C语言实现括号匹配(栈实现)
数据结构之---C语言实现括号匹配(栈实现)
判断字符串中的括号是否匹配-C语言
判断字符串中的括号是否匹配-C语言递归实现: 先检搜一对匹配的括号,再对里面的内容进行匹配,匹配完后再继续往下匹配…… #include <stdio.h> #include <stdlib.h> #include <string.h>// 在start与end中搜索匹配 int fun(char *str, int start, int end) { char chLeft;
数据结构-C语言括号匹配问题(栈和计数方式两种思想)
题目描述现在,有一行括号序列,里面只包含”(“,”)”,”[“,”]”四种符号,请你检查这行括号是否配对。 如: []是匹配的 ([])[]是匹配的 ((]是不匹配的 ([)]是不匹配的 求解思想这里提供了两种求解方法:一种是使用栈进行求解;另一种是使用计数器进行求解。下面分别对两种方法进行描述以及给出相应代码。栈定义一个计数器用来判断正反括号的数量,遇见 { 则count+1