幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2236|回复: 2

[通用编程] 程序问题

[复制链接]

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
发表于 2007-11-14 00:04:24 | 显示全部楼层 |阅读模式
  1. #include<stdio.h>
  2. int correct(char exp[],int n)
  3. {
  4.     char st[10];
  5.     int top=0,i=0,tag=1,count=0;
  6.     while(i<=n && tag)
  7.     {
  8.         if(exp[i]=='(' || exp[i]=='[' || exp[i]=='{')
  9.         {
  10.             st[top]=exp[i];
  11.             
  12.         }
  13.         if(exp[i]==')')
  14.         {
  15.             if(st[top]=='(')
  16.             {
  17.                
  18.                 tag=0;
  19.                 count++;
  20.             }
  21.         }
  22.         if(exp[i]==']')
  23.         {
  24.             if(st[top]=='[')
  25.             {   
  26.                 tag=0;
  27.                 count++;
  28.             }
  29.         }
  30.         if(exp[i]=='}')
  31.         {
  32.             if(st[top]=='{')
  33.             {   
  34.                 tag=0;
  35.                 count++;
  36.             }
  37.         }
  38.         i++;
  39.     }
  40.          return tag;
  41. }
  42. void main()
  43. {
  44.     char arr[10],ch;
  45.     int i;
  46.     for(i=0;i<5;i++)
  47.     {
  48.         scanf("%c",&arr[i]);
  49.     }
  50.     for(i=0;i<5;i++)
  51.         printf("%c",arr[i]);
  52.     printf("%d\n",correct(arr,4));
  53.     if(correct(arr,4))
  54.       printf("that is great!\n");
  55.     else
  56.       printf("this is bad!\n");
  57. }
复制代码
为什么这里我输入(&*^) 或者输入(*&^%    都得不能正确得出答案呢?[s:8]
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复

使用道具 举报

8

主题

215

帖子

2223

积分

⑥精研

积分
2223
发表于 2007-11-14 12:30:47 | 显示全部楼层
这是想用栈来匹配括号么...但是写得不对嘛,top都没变过.就当前的这种用法,count没有作用,st数组也没任何作用(因为只有st[0]被用到了).

Anyway,楼主的问题:
引用第0楼august于2007-11-14 00:04发表的 程序问题 :
为什么这里我输入(&*^) 或者输入(*&^%    都得不能正确得出答案呢?
那是因为最后的if条件写反了...是
if( !correct(arr,4))
回复 支持 反对

使用道具 举报

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
 楼主| 发表于 2007-11-14 16:35:28 | 显示全部楼层
这个程序原来不是这样的,偶修改的好多编,最后发觉最主要问题是RETURN那里没搞好 [s:5]
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-5-3 09:34 , Processed in 0.019393 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表