| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 359 人关注过本帖
标题:回车后肿么终止不了啊(回文序列栈实现)
只看楼主 加入收藏
克莱尔小熊
Rank: 1
等 级:新手上路
帖 子:6
专家分:5
注 册:2011-7-21
结帖率:0
收藏
已结贴  问题点数:10 回复次数:5 
回车后肿么终止不了啊(回文序列栈实现)
while(c!=13);怎么不起作用呢
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<malloc.h>
#include<ctype.h>

typedef struct Stack
{
   char info;
   struct Stack *next;
}Stack;

Stack *start;
Stack *rstart;
Stack *cstart;
Stack *push(Stack *);
Stack *pop(Stack *);
char peer(Stack *);

int isaplha(char c)
{
    if((('a'<=c)&&(c<='z'))||(('A'<=c)&&('Z'>=c))&&(c!=32))
       return 1;
    else
       return 0;
}

char peer(Stack *rec)
{
     if(rec=NULL)
        printf("Stack is empty.");
     else
        return rec->info;
}

int isempty(Stack  *rec)
{
    if(rec=NULL)
       return 1;
    else
       return 0;
}

Stack *push(Stack *rec,char info)
{
      Stack *new_rec;
      new_rec=(Stack *)malloc(sizeof(Stack));
      new_rec->info=info;
      new_rec->next=rec;
      rec=new_rec;
}

Stack *pop(Stack *rec)
{
      Stack *temp;
      if(rec==NULL)
         printf("Stack is empty.");
      else
      {
           temp=rec->next;
           free(rec);
           rec=temp;
      }
      return rec;
}

int main()
{
    char c;
    int flag=0;
    printf("Enter the characters :\n");
    do
    {
        scanf("%c",&c);
        if(isaplha(c))
        {
            start=push(start,c);
            cstart=push(cstart,c);
        }
    }while(c!=13);
    while(!isempty(start))
    {
        rstart=push(start,peer(start));
        start=pop(start);
    }
    while(!isempty(rstart))
    {
       if(toupper(peer(rstart))==toupper(peer(rstart)))
          flag=1;
       else
       {
          flag=0;
          break;
       }
    }
    if(flag==1)
       printf("The string is a palindrome");
    else
       printf("The string is not a palindrome");
      
system("pause");
}
   
   
   
             
      









       
       
       
       
       
       
       
       
       

2011-07-25 16:22
myh2006
Rank: 1
等 级:新手上路
帖 子:5
专家分:4
注 册:2011-7-30
收藏
得分:3 
while(c!=13);出了问题,你的循环结束条件在哪呢???我愚昧没发现,望各位指教
2011-07-30 10:43
克莱尔小熊
Rank: 1
等 级:新手上路
帖 子:6
专家分:5
注 册:2011-7-21
收藏
得分:0 
回复 2楼 myh2006
c=13不是终止条件吗?输入回车的时候就终止了啊?不是吗????求指教啊
2011-07-31 21:23
草狼
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:577
专家分:1040
注 册:2010-4-6
收藏
得分:3 
你c定义的使字符类型  输入13并不等于13- -
2011-08-01 09:55
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:3 
while(c!=0x0a);
你的下面两个语句有错:
char peer(Stack *rec)
{
     if(rec=NULL) --->>>>>>>>>>rec == NULL
        printf("Stack is empty.");
     else
        return rec->info;
}

int isempty(Stack  *rec)
{
    if(rec=NULL) --->>>>>>同上理
       return 1;
    else
       return 0;
}

另外Stack *push(Stack *rec,char info)和你的原型申明不一致,一些函数该有返回值的地方没有返回值。

我们都在路上。。。。。
2011-08-01 12:31
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:3 
c!=13 改成 10 或 '\n'
windows 下回车会被解释成 \n\r
2011-08-01 16:50
快速回复:回车后肿么终止不了啊(回文序列栈实现)
数据加载中...
 
   



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

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