使用C语言编程:从键盘输入一个5的正整数,判断它是不是回文数。

如题所述

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

void check(int* Hui)//这个函数用来检测是否是5位数
{
int i;
int count=0;//计数变量
char lenth[10];
for(i=0;i<strlen(itoa(*Hui,lenth,10));i++){
count++;
}//这里for循环可以换成count=strlen(itoa(*Hui,lenth,10))
printf("这是%d位数",count);
if(count==5){
puts("go on..");
}
else{
puts("your input is error!");
exit(0);
}
}

int main()
{
int* Huiwenshu=NULL; //也可以用int Huiwenshu[6];,推荐前一种
int Last_digit;//末位数字
int First_digit;//首位数字
int Thou_digit;//千位数字
int Ten_digit;//十位数字

Huiwenshu=(int*)malloc(sizeof(int*));//申请int*大小的连续空间
puts("请输入一个5位数:");
scanf("%d",&*Huiwenshu);//获取5位数
check(Huiwenshu);//将5位数导入检查函数
/*将5位数分解,涉及"%"取余数的技巧*/
Last_digit=*Huiwenshu%10;//取末位
Ten_digit=((*Huiwenshu%100-(Last_digit))/10);//取十位
Thou_digit=((*Huiwenshu%10000-(*Huiwenshu%1000))/1000);//取千位
First_digit=((*Huiwenshu%100000-(*Huiwenshu%10000))/10000);//取首位

if(Last_digit==First_digit){ //判断回文数
if(Ten_digit==Thou_digit){
printf("%d是回文数!",*Huiwenshu);
}
else{
printf("%d不是回文数!",*Huiwenshu);
return 0;
}
}
else{

}
free(Huiwenshu);//释放内存

return 0;
}

代码里的注释很清晰,如果不懂再问噢。其实还有另一种方法,就是直接定义一个int型数组,然后通过取对应的位数进行比较,然后得出结果,不过这种方法通用性较低,但是也行。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-27
#include <stdio.h>
#define N 5
void main()
{
char num[N+1];
int i,j;
printf("输入一个五位数");
scanf("%s",num);
for(i=0,j=N-1;i<=j;i++,j--)
{
if(num[i]!=num[j])
break;
}
if(i<=j)
printf("不回文\n");
else
printf("回文\n");
}本回答被网友采纳
第2个回答  2013-04-27
#include<stdio.h>
int main()
{
int i,j,k,l,x,y,num;
while(1)
{printf("输入一个五位数: ");<br/> scanf("%d",&num);<br/> if(num/10000!=0)<br/> break;<br/> }
i=num/10000;
j=(num-i*10000)/1000;
k=(num-i*10000-j*1000)/100;
if(i*10000+j*1000+k*100+j*10+i==num)
printf("这是一个回文数!");
else printf("这不是一个回文数!");
}
第3个回答  2017-07-21
#include<stdio.h>
int main()
{
char str[51];
int i=0,j;
gets(str);
for(;str[i]!='\0';i++)
for(j=0;j<=i;j++)
if(str[j]!=str[i-j]) break;
if(j>=i) printf("yes");
else printf("no");
return 0;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网