标题:一个判断回文的程序求教(实在想不通)
只看楼主
as574301858
Rank: 2
来 自:成都
等 级:论坛游民
帖 子:14
专家分:28
注 册:2012-3-16
结帖率:100%
 问题点数:0 回复次数:5 
一个判断回文的程序求教(实在想不通)
/*此程序的目的是输入一个字符串,判断是否是回文(比如abba,dijid就是回文)*/

#include<stdio.h>
#include<string.h>
int i=0;
char a[256]={0};

void first();
int pdhw(char ax[]);

void main()
{
   
    first();
        if(pdhw(a))
            printf("It is not a huiwen.");
        else
            printf("It is a huiwen.");
        getchar();
}

void first()
{
    int pass=1,oh;
   
    while(pass)
    {
        printf("Please input a word.\n");
        printf("The word:");
        while(a[i]!='\n')
        {
            if(i!=0)
                i++;                //这里不知道怎么的i不能增加
        scanf("%c",&a[i]);
        }
            if(i<=1)
            {
                printf("It is not allowed!\n");
                    printf("Please input again.\n");
            }
            else
                pass=0;  
    }
}

int pdhw(char ax[])
{
    int x;
    for(x=0,i--;(x<=i)||(i!=x);x++,i--)
        if(ax[x]!=ax[i])
        {
            return 0;
            break;
        }
        return 1;

}

搜索更多相关主题的帖子: void word include 字符串 
2012-05-20 14:11
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
得分:0 
程序代码:
#include <stdio.h>
#include <string.h>

int main(void)
{
    char str[256];
    int i, j, len;
   
    scanf("%s", str);
    len = strlen(str);
    for (i = 0, j = len - 1; i < j; ++i, --j)
        if (str[i] != str[j])
            break;
    if (i >= j)
        printf("Yes\n");
    else
        printf("No\n");
    return 0;
}
这个应该能满足LZ的要求。

My life is brilliant
2012-05-20 14:22
lknight
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:37
专家分:187
注 册:2008-9-17
得分:0 
你定义的i的初始值是0,在调用first()函数之前没有修改i的值,并且在first()函数中也没有地方修改i的值,那么i!=0始终为假,当然不执行i++了。
2012-05-20 15:57
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:0 
看一下回文串的定义  

如果一个字符串的第一个字母和倒数第一个字母相同

并且除掉这两个字母剩下的字符串也是回文串  那么原来整个的字符串就是回文串

                                         
===========深入<----------------->浅出============
2012-05-20 17:11
jue_1012
Rank: 1
等 级:新手上路
帖 子:15
专家分:4
注 册:2012-5-18
得分:0 
#include<stdio.h>
#include<string.h>
void main()
{char str[10];
int i=0,j=0,N;
printf("输入一串字符串:");
scanf("%s",str);
N=strlen(str);
j=N-1;
while(str[i]==str[j]&&i<j){
    i++;
   j--;
}
if(i<j){
    printf("不是回文数!\n");}
else{
   printf("是回文数!\n");}
}
2012-05-20 17:59
as574301858
Rank: 2
来 自:成都
等 级:论坛游民
帖 子:14
专家分:28
注 册:2012-3-16
得分:0 
还是帮我看看我的程序哪错了吧
2012-05-22 16:11



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




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

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