| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7501 人关注过本帖
标题:[讨论]第八次编程题目,谢谢大家的支持.
只看楼主 加入收藏
iwfy
Rank: 1
等 级:新手上路
威 望:2
帖 子:888
专家分:0
注 册:2007-2-23
收藏
得分:0 
LS有漏洞哦
}}{}{{
你试下

英语不好还想学编程??逆天之路,不由分说!! 数学太差还想学编程??离经叛道,义无返顾!!
2007-03-19 15:42
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
收藏
得分:0 
呵呵,谢谢!等下我调试下!

该学习了。。。
2007-03-19 15:45
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
收藏
得分:0 
[CODE]

呵呵,这下试下!
#include <stdio.h>
#include <stdlib.h>
#define NUMBER 7

int panduan(char achar[], int n);
int duiying(char achar[], int n);

int main()
{
char achar[NUMBER], ch;
int i;

while(EOF != scanf("%c", &ch))/*判断结束*/
{
i = 0;
achar[0] = ch;

for(i = 1;;i ++)
{
scanf("%c", &achar[i]);
if(achar[i] == '\n')
break;
}
if(panduan(achar, i - 1) && duiying(achar, i - 1))
printf("true\n");
else
printf("false\n");
}

return 0;
}

int panduan(char achar[], int n)/*判断顺序是否正确*/
{
int i = (n + 1) / 2, j;

for(j = 0;j < i - 1;j ++)
if(((achar[j] - achar[j + 1] < 0) && (achar[j] == '(' && achar[j + 1] == '<')) || (achar[j] == '<' && achar[j + 1] == '('))
return 0;
return 1;
}

int duiying(char achar[], int n)/*判断是否对应*/
{
int i = (n + 1) / 2, j;

for(j = 0;j < i;j ++)
if(achar[n - j] - achar[j] != 1 || achar[n - j] - achar[j] != 2)/*判断这里出现了错误*/
return 0;
return 1;
}

[/CODE]

该学习了。。。
2007-03-19 15:49
iwfy
Rank: 1
等 级:新手上路
威 望:2
帖 子:888
专家分:0
注 册:2007-2-23
收藏
得分:0 
挺快啊
这个{[]()}

英语不好还想学编程??逆天之路,不由分说!! 数学太差还想学编程??离经叛道,义无返顾!!
2007-03-19 15:51
无玩过界
Rank: 1
等 级:新手上路
威 望:2
帖 子:246
专家分:0
注 册:2007-2-20
收藏
得分:0 

比之前简短些
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int *a,i=0,sum=0;
char c[81];

gets(c);

while(c[++i]);
a=(int *)malloc(i*sizeof(int));
for(i=0;c[i];i++)
{
switch(c[i])
{
case '{':a[i]=4;break;
case '[':a[i]=3;break;
case '(':a[i]=2;break;
case '<':a[i]=1;break;
case '>':a[i]=-1;break;
case ')':a[i]=-2;break;
case ']':a[i]=-3;break;
case '}':a[i]=-4;break;
default:a[i]=0;sum=1;break;
}
if(sum==1)
break;
}
if(sum)
puts("false");
else
if(i&1)
puts("false");
else
{
for(i=1;c[i]&&a[i-1]>=a[i];i++);
if(!c[i])
{
sum=i;
for(i=0;i<sum/2&&a[i]==-a[sum-1-i];i++);
if(i==sum/2)
puts("True");
else
puts("false");
}
else
puts("false");
}
free(a);
return 0;
}

[此贴子已经被作者于2007-3-19 16:28:38编辑过]


2007-03-19 15:58
iwfy
Rank: 1
等 级:新手上路
威 望:2
帖 子:888
专家分:0
注 册:2007-2-23
收藏
得分:0 
LS,英语打错了,是TRUE,不是FRUE另外不能这样{}[]

英语不好还想学编程??逆天之路,不由分说!! 数学太差还想学编程??离经叛道,义无返顾!!
2007-03-19 16:04
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
有说这样{}[]不行吗

雁无留踪之意,水无取影之心
2007-03-19 16:12
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
其实,楼主出这个题目的意思就是要大家写个程序判断一下自已的代码会不会因为括号的问题造成错误

雁无留踪之意,水无取影之心
2007-03-19 16:14
iwfy
Rank: 1
等 级:新手上路
威 望:2
帖 子:888
专家分:0
注 册:2007-2-23
收藏
得分:0 
是不行吧,如果全是层层包起来的话那就不用这么麻烦了,直接1--n 2--n-2 3--n-3 就能判断了

[此贴子已经被作者于2007-3-19 16:16:21编辑过]



英语不好还想学编程??逆天之路,不由分说!! 数学太差还想学编程??离经叛道,义无返顾!!
2007-03-19 16:14
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
唉,我调试了一下,我们两个都是对的,你是说他的代码不能通过这个,我是说楼主的意思是要这个也满足

我刚才误解你的意思了

雁无留踪之意,水无取影之心
2007-03-19 16:19
快速回复:[讨论]第八次编程题目,谢谢大家的支持.
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018028 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved