c语言设计一个函数判断字符串是否回文

想要设计一个函数判断字符串是否回文,但不知道哪里出了问题,求友友们帮我指点一二


#include
#include
int HW(char a[100])
{
gets(a);
int c=strlen(a);
int i;
for(i=1;i<=c/2;i++)
{
    if(a[i]!=a[c-i+1])
    {

    printf("这串字符不是回文");
    break;
        }
    else
    printf("这串字符是回文");    
}
return HW;
    
}

int main()
{
    char s[100];
    gets{s};
    HW(s);
    return 0;
 } 

望采纳!点击该回答右侧的“采纳”按钮即可采纳!!!
具体有什么报错嘛?
我先给你看看我写的代码吧

#include<stdio.h>
#include<string.h>

int is_palindrome(char a[100])
{
int c = strlen(a);
int i;
for (i = 0; i < c / 2; i++)
{
if (a[i] != a[c - i - 1])
{
printf("这串字符不是回文\n");
return 0;
}
}
printf("这串字符是回文\n");
return 1;
}

int main()
{
char s[100];
printf("请输入要判断的字符串:");
gets(s);
is_palindrome(s);
return 0;
}


//该代码使用Microsoft Visual Studio2019编写
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<string.h>

int fun(const char* p)
{
    int i;
    int len = strlen(p);
    for (i = 0; i <= len; i++) {
        if (p[i] == p[len -1])
            len--;
        else
            return 0;
    }
    return 1;
}
int main(void)
{
    char x[100];
    gets(x);
    char* p=x;
    int n=fun(p);
    if (n==1)
        printf("是回文串");
    else if(n==0)
        printf("不是回文串");
    return 0;
}

错误太多:
1、基本语法错误:gets{s}
2、函数返回值 return HW 没有赋值;
3、主程序、子程序都在 gets()