【C语言】定义一个判断回文数的函数,输入一串数字或字母,判断是否为回文数。(要求使用数组)

int main()
{
int N,i,k=1;
printf("请输入您要输入字母的个数");
scanf("%d",&N);
char a[N];
getchar();
for(i=0;i<=N;i++){
scanf("%c",&a[i]);}
for(i=0;i<N/2;i++){
if(a[i]!=a[N-i-1])
{
k=0;
break;
}
}
if(k=1)
printf("您输入的数是回文数");
else
printf("您输入的数不是回文数");

return 0;
}

#include<stdio.h>
#include<math.h>
int check(char a[],int N)
{ int i;
  for(i=0; i<N/2; i++)
  { if(a[i]!=a[N-i-1])
      return 0;
  }
  return 1;
}
int main()
{ int N,i,k=1;
  printf("请输入您要输入字母的个数");
  scanf("%d",&N);
  char a[N];
  getchar();
  for(i=0; i<=N; i++)
  { scanf("%c",&a[i]);
  }
  
  if(check(a,N))
    printf("您输入的是回文字符串");
  else
    printf("您输入的不是回文字符串");

  return 0;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-11-18
#include<stdio.h>

int main(){
    char s[1000];
    int i=0,n=0;
    bool flag=true;
    char c;
    while(scanf("%c",&c)!=EOF){
        s[n++]=c;
        printf("%c %d\n",s[n-1],n-1);
    }
    for(i=0;i<n/2;i++){
        if(s[i]!=s[n-2-i]){
            flag=false;
            break;
        }
    }
    if(flag) printf("是回文数\n");
    else printf("不是回文数\n");
}

第2个回答  2018-11-18
这段代码至少有两个错误。第一,输入N个数,但是你的第一个for循环是i从0开始,i<=N,就说明有N+1个数,所以数组越界,会崩溃(数组a只定义了N的长度)。第二,后面的if(k=1)一直会为真(这样写是判断1是否能成功赋值给1,这个当然为真),应该是两个等号if(k==1)。追问

请问能不能帮我修改为函数形式?谢谢

追答

手机打字很辛苦的...,我只说怎么做。你可以把函数声明写成这样,bool IsPlalindrome(int N, char* p);把第二个for语句移到这个函数里,再稍微修改一下,OK

...输入一串数字或字母,判断是否为回文数。(要求使用数组)
i,k=1; printf("请输入您要输入字母的个数"); scanf("%d",&N); char a[N]; getchar(); for(i=0; i<=N; i++) { scanf("%c",&a[i]); } if(check(a,N)) printf("您输入的是回文字符串"

...判断是否为回文数 输入一个数,判断是否为回文数,如果是,输出Yes,否...
scanf("%d",x);改为 scanf("%d",&x);这样就OK啦

c语言 编写一个函数,来判断一个数是否是回文数。(回文数就是像12321...
int tmp=0;for(int n=num;n;n\/=10)tmp=tmp*10+n%10;return tmp==num;} int main(int argc,char*argv[]){ int num=12321;printf("%d%d\\n",num,IsEchoNum(num));}

怎么用c语言写一个编程,使输入一个整数,判断它是不是回文数
include <stdio.h> int main(){ int num, temp;int sum=0;printf("Please input a number:");scanf("%d", &num);temp=num;while(num){ sum = sum*10 + num%10;num \/= 10;} if(temp == sum)printf("yes\\n");else printf("no\\n");return 0;} ...

c语言判断回文数
c语言判断回文数 20 编写函数JSV(long m)判断m是否为回文数,如果是,则函数返回1,繁殖则返回0.主函数调用函数JSV,寻找11—999之间的数m,他满足m,m*m,m*m*m均为回文数,最后把找到的数写入到当前目录下新建文件DE2.DAT中 zxlzql1988 | 浏览11748 次 |举报 我有更好的答案...

C语言 回文数
include <stdio.h> void main(){ int num;int sum=0;int i,j;printf("所有的回文数字如下:\\n");for(i=1000;i<10000;i++){ num=0;j=i;while(j!=0){ num=num*10+j%10;j\/=10;} if(num==i){ printf("%d ",num);sum++;} } printf("\\n总数为%d个\\n",sum);} ...

C语言 关于判断回文数的程序
1、首先打开vc6.0,新建一个控制台项目,添加头文件。2、然后我们根据图示代码添加main主函数。3、然后我们根据图示代码定义6个long型变量。4、然后我们根据图示代码使用scanf给input赋值。5、然后我们根据图示代码分解个位、百位、千位、万位。6、然后我们根据图示代码使用if判断。7、然后我们根据图示代码...

C语言判断回文数小程序
include <stdio.h> \/\/添加头文件 int main(void)\/\/主函数 { int val;int m;int sum = 0;\/\/定义三个整型变量,分别是val m sum,其中sum赋初值位0 printf("请输入您需要判断的数字:");scanf("%d",&val);\/\/接受用户输入的数据,并存入变量val中 m = val;\/\/将m赋值为val while (m)...

用c语言判断一个数是不是回文数
所谓回文数,就是说一个数字从左边读和从右边读的结果是一模一样的,比如12321。以下是判断一个数是否为回文数的代码:大致思路就是将一个数反着排列一遍,如果和原先的数一样,那么就是回文数。这个排列过程用到了余数和整除。比如986,经过排列后为689,就不是回文数。

用C语言编程找出回文数,要求定义个函数,在指定范围内找出回文数,统计个...
while(n > 0){ a[i] = n % 10;n = n \/ 10;i++;} i--;for(j=0;j<(i+1)\/2;j++)if(a[j] != a[i-j])return 0;return 1;} void main() { unsigned int i,m,n;printf("请输入m和n的值:\\n");scanf("%d%d",&m,&n);for(i=m;i<=n;i++)if(isPalin(i))...

相似回答