注册 登录
编程论坛 C语言论坛

为什么编译不过,求大神解答,编译器devc++

魂之子 发布于 2020-01-16 14:25, 2006 次点击
定义全局枚举变量时候不过,求解答。
#include <stdio.h>
#include <string.h>

#define MAXN 20
typedef enum {false, true} bool;//全局枚举变量

bool palindrome( char *s );

int main()
{
    char s[MAXN];

    scanf("%s", s);
    if ( palindrome(s)==true )
        printf("Yes\n");
    else
        printf("No\n");
    printf("%s\n", s);

    return 0;
}

bool palindrome( char *s ){
    int i;
    for( i=0; i<=strlen(s)/2; i++){
        if (s[i]!=s[strlen(s)-i]){
            return false;
        }else return true;
    }
   
}
5 回复
#2
rjsp2020-01-16 14:31
为什么编译不过
那你应该贴出编译器给出的错误信息

编译器devc++
devcpp是个IDE,不是编译器。devcpp默认使用的编译器好像是 TDM-GCC 4.9.2 吧
#3
魂之子2020-01-16 14:34
回复 2楼 rjsp
只有本站会员才能查看附件,请 登录


学到了。
#4
rjsp2020-01-16 14:41
回复 3楼 魂之子
既然是 C语言,为什么你源代码的扩展名是 cpp ?
在cpp中true/false是keyword。
#5
rjsp2020-01-16 14:43
gcc 4.9.2 太古老了,但你可以试试

程序代码:
#include <stdio.h>
#include <string.h>
#include <stdbool.h>

bool palindrome( const char* s );

int main( void )
{
    char s[81];
    if( scanf("%80s",s) != 1 )
        return 1;

    puts( palindrome(s)?"Yes":"No" );
    puts( s );
}

bool palindrome( const char* s )
{
    size_t len = strlen(s);
    for( size_t i=0; i!=len/2; ++i )
        if( s[i] != s[len-1-i] )
            return false;
    return true;
}

#6
魂之子2020-01-16 18:22
回复 5楼 rjsp
非常感谢,问题已经解决。
1