| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 462 人关注过本帖
标题:帮忙看一下代码错在哪
只看楼主 加入收藏
pzwx
Rank: 1
等 级:新手上路
帖 子:3
专家分:2
注 册:2010-7-8
收藏
 问题点数:0 回复次数:5 
帮忙看一下代码错在哪
判断回文的,编译通过了,但运行时被windows终止,帮忙看看,先谢过
程序代码:
#include<stdio.h>
main()
{
    char *str1="Dot saw I was tod";
    char *str2="Niagara O roar again!";
    printf("the palindromen:\n");
    if(hw(str1)>0)
    printf("\n%s",str1);
    if(hw(str2)>0)
    printf("\n%s",str2);
    getch();
}
int hw(char *string)
{
    int i,n,m,s,len=0;
    for(i=0;string[i]!='\0';i++)
    {
        len++;
    }
    n=0;
    m=len-1;
    while(n<m)
    {
       if(string[n]>=65&&string[n]<=90||string[n]>=97&&string[n]<=122)
        {if(string[n]>=65&&string[n]<=90)
          string[n]=string[n]+32;
        }
        else {n++;
        continue;
        }
       if(string[m]>=65&&string[m]<=90||string[m]>=97&&string[m]<=122)
        {
            if(string[m]>=65&&string[m<=90])
            string[m]=string[m]+32;
        }
        else {m--;
        continue;
        }
        if(string[n]!=string[m])
        {
            s=-1;
            return s;
            break;
        }
    }
搜索更多相关主题的帖子: 代码 
2010-07-08 18:28
飘雪丶o
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-7-4
收藏
得分:0 
试试在TC里运行看看呢?
2010-07-08 19:11
xiaweiqiang
Rank: 2
等 级:论坛游民
帖 子:27
专家分:82
注 册:2010-7-1
收藏
得分:0 
string[n]=string[n]+32;  错了
2010-07-08 20:24
xiaweiqiang
Rank: 2
等 级:论坛游民
帖 子:27
专家分:82
注 册:2010-7-1
收藏
得分:0 
int hw(char *string)
  这个函数返回值也没有  怎么做main里面的比较呢  直接会退出   赋值也有错误
2010-07-08 20:32
xiaweiqiang
Rank: 2
等 级:论坛游民
帖 子:27
专家分:82
注 册:2010-7-1
收藏
得分:0 
#include "stdio.h"
#include "malloc.h"
#include  <string.h>

typedef struct LNode
{
    char str;
    struct LNode *next;

}LNode;

typedef struct
{
    LNode *front;
    LNode *rear;
}LinkLNode;

typedef struct
{
    char data[100];
    int top;
}SqStack;

void InitList(LinkLNode *p)
{
    p->front = p->rear = NULL;
}

void EnList(LinkLNode *p,char s)
{
    LNode *q = (LNode *)malloc(sizeof(LNode));
    q->str = s;
    q->next = NULL;
    if(p->front == NULL)
        p->front = p->rear = q;
    else
        p->rear->next = q;
    p->rear = q;
}

void ShowList(LinkLNode *p)
{
    LNode *q = p->front;
    if(p->front == NULL)
    {
        printf("没有输入测试字符!");
    }
    else
        while(q != NULL)
        {
            printf("%c",q->str);
            q = q->next;
        }
}

char DeList(LinkLNode *p)
{
    char c;
    LNode *q = p->front;
    q = p->front;
    c = q->str;
    p->front = q->next;
    if(p->front == NULL)
        p->rear = NULL;
    free(q);
    return c;
}

void InitStack(SqStack *q)
{
    memset(q->data, 0, 100);
    q->top = -1;
}

void Ruzhan(SqStack*q,char s)
{
    ++q->top;
    q->data[q->top]=s;
}

char Chuzhan(SqStack *q)
{
    return (q->data[q->top--]);
}

void ShowStack(SqStack *q)
{
    int i;
    for(i=q->top;i>=0;--i)
        printf("%c ",q->data[i]);
    printf("\n");
}

void main()
{
    int x=0,y;
    char s;
    char A[20],B[20];
    LinkLNode p;
    SqStack q ;
    InitList(&p);
    InitStack(&q);
    printf("请输入要测试的字符:(按 0 结束输入!)\n");   
    while((scanf("%c",&s)) == 1)
    {
        if(s == '0')
            break;
        EnList(&p,s);
        Ruzhan(&q,s);
        fflush(stdin);
        x++;
   
    }


    for(y=0;y<x;y++)
    {
        
        A[y]  = DeList(&p);
        B[y]  = Chuzhan(&q);
        if(A[y] != B[y])
        {
            printf("不是回文!");
            break;
        }
        else
        {
            printf("是回文!");
            break;
        }
            
            
    }
   
   
}
    给个你参考下  呵呵  我用的是栈
2010-07-08 20:33
pzwx
Rank: 1
等 级:新手上路
帖 子:3
专家分:2
注 册:2010-7-8
收藏
得分:0 
回复 3楼 xiaweiqiang
最基础的搞错了,回家看书去
2010-07-08 21:08
快速回复:帮忙看一下代码错在哪
数据加载中...
 
   



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

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