标题:c语言的一个错误类型怎么弄成匹配的
只看楼主
NeQhk
Rank: 2
等 级:论坛游民
威 望:1
帖 子:164
专家分:85
注 册:2014-7-19
结帖率:69.23%
 问题点数:0 回复次数:4 
c语言的一个错误类型怎么弄成匹配的
定义了char ch【20】
if(ch[i]=='('|| ch[i]=='[' || ch=='{')
         push(&s,ch[i]);
错误是 no conversion from 'int' to 'char * '

pop函数定义是 void pop(sqStack *s,ElemType *e)

ElemType 是typedef char
搜索更多相关主题的帖子: conversion c语言 
2015-04-05 19:55
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
得分:0 
真有点福尔摩斯探案的感觉
是楼主故意这样呢?
还是??????????

Only the Code Tells the Truth             K.I.S.S
2015-04-05 20:09
NeQhk
Rank: 2
等 级:论坛游民
威 望:1
帖 子:164
专家分:85
注 册:2014-7-19
得分:0 
回复 2楼 longwu9t
额,我题目没说明白。。等下,我把代码搞出来
2015-04-05 20:13
NeQhk
Rank: 2
等 级:论坛游民
威 望:1
帖 子:164
专家分:85
注 册:2014-7-19
得分:0 
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define STACK_INIT_SIZE 20
#define STACKINCREMENT  10
#define MAXBUFFER       10

typedef char ElemType;
typedef struct
{  
    ElemType *base;
    ElemType *top;
    int stackSize;
}sqStack;

void initStack (sqStack *s)
{
   s->base=(ElemType*)malloc(STACK_INIT_SIZE *sizeof(ElemType));
   if(!s->base)
   {
         exit(0);
   }
   s->top=s->base;
   s->stackSize=STACK_INIT_SIZE;
}

void push(sqStack *s,ElemType e)
{
   if(s->top-s->base >= s->stackSize)
   {
      s->base=(ElemType *)realloc(s->base,(s->stackSize+STACKINCREMENT)*sizeof(ElemType));
      if(!s->base)
           exit(0);
      s->top=s->base+s->stackSize;
      s->stackSize=s->stackSize+STACKINCREMENT;
   }
   *(s->top)=e;
   s->top++;
}

void pop(sqStack *s,ElemType *e)
{
   if(s->base==s->top)
       return ;
   *e=*--(s->top);
}

int Stacklen(sqStack s)
{
    return (s.top-s.base);
}

int stackempty(sqStack *s)
{
   if(s->top==s->base)
   {
     return 0;
   }
   return 1;
}

int main()
{
   sqStack s;
   char ch[20];
   int i,flag1=0,flag2=0,flag3=0;
   ElemType e;
   initStack(&s);
   scanf("%s",ch);
   i=0;
   while(ch[i]!='\0')
   {
      if(ch[i]=='('|| ch[i]=='[' || ch=='{')
          push(&s,ch[i]);
      if(ch==')' )
      {
          if( stackempty(&s))
            pop(&s,&e);
          if(e=='(')
              flag1=1;  
          else
              flag1=0;
          printf("Extra right brackets");
      }
        if(ch=='}' )
      {
          if( stackempty(&s))
            pop(&s,&e);
          if(e=='{')
              flag3=1;  
          else
              flag3=0;
      }
          if(ch==']' )
      {
          if( stackempty(&s))
            pop(&s,&e);
          if(e=='[')
              flag2=1;  
          else
              flag2=0;
      }

     i++;
   }
   if( stackempty(&s))
   {
       pop(&s,&e);
       if(e=='(')
       {
         printf("Extra left brackets");
       }
   }
   
   if(flag1==1 && flag2==1 && flag3==1)
       printf("Brackets match");
   if(flag1==0 || flag2==0 || flag3==0)
        printf("Brackets not match");
   return 0;


}
2015-04-05 20:13
NeQhk
Rank: 2
等 级:论坛游民
威 望:1
帖 子:164
专家分:85
注 册:2014-7-19
得分:0 
回复 2楼 longwu9t
这个程序是求一个括号匹配的代码
2015-04-05 20:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-443591-1-1.html




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

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