700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 回文数c语言 字符串 回文数与回文字符串的判断

回文数c语言 字符串 回文数与回文字符串的判断

时间:2020-02-19 13:46:59

相关推荐

回文数c语言  字符串 回文数与回文字符串的判断

1.回文数字:判断一个数字是不是回文数。(回文数的特点是正反序是同一个数字,如:12321,3443)。

2.回文字符串:判断一个字符串是不是回文字符串。(回文字符串特点是原字符串与字符串逆序之后一样,如:"abcba","cddc")。

#include

usingnamespacestd;

intPalindromeNumber(size_tcount)

{

//1.在自然数范围内

//2.情况:0-9,11、99,121,1221,

intflag=0;

inttail=0,head=0;

size_ttmp=count;

//flag=count>=0?0:-1;//定义时是size_t自动截断所以不判断也可若,若定义时使用int则需要判断

intarr[10]={0};//将数字变为数组存储

//chararr[10]={0};//也可将数字变为字符串存储

memset(arr,-1,10*sizeof(int));

while(tmp)

{

arr[tail++]=tmp%10;

tmp/=10;

}

for(head=0;head

{

if(arr[head]!=arr[tail-1])

break;

}

if(head>=tail)

flag=1;

returnflag;

}

intPalindromeString(char*str)//C++的引用

{

//思路:与回文数思路相似

//先遍历一遍字符串找到tail

intflag=0;

inttail=strlen(str);

inthead=0;

for(head=0;head

{

if(str[head]!=str[tail-1])

break;

}

if(head>=tail)

flag=1;

returnflag;

}

voidtest()

{

size_tcount=0;

intflag=0;

count=0;

flag=PalindromeNumber(count);

if(flag==1)

printf("数字%d是回文数字\n",count);

elseif(flag==0)

printf("数字%d不是回文数字\n",count);

else

printf("输入错误\n");

count=11;

flag=PalindromeNumber(count);

if(flag==1)

printf("数字%d是回文数字\n",count);

elseif(flag==0)

printf("数字%d不是回文数字\n",count);

else

printf("输入错误\n");

count=65465;

flag=PalindromeNumber(count);

if(flag==1)

printf("数字%d是回文数字\n",count);

elseif(flag==0)

printf("数字%d不是回文数字\n",count);

else

printf("输入错误\n");

count=12221;

flag=PalindromeNumber(count);

if(flag==1)

printf("数字%d是回文数字\n",count);

elseif(flag==0)

printf("数字%d不是回文数字\n",count);

else

printf("输入错误\n");

count=159951;

flag=PalindromeNumber(count);

if(flag==1)

printf("数字%d是回文数字\n",count);

elseif(flag==0)

printf("数字%d不是回文数字\n",count);

else

printf("输入错误\n");

count=10;

flag=PalindromeNumber(count);

if(flag==1)

printf("数字%d是回文数字\n",count);

elseif(flag==0)

printf("数字%d不是回文数字\n",count);

else

printf("输入错误\n");

count=121521;

flag=PalindromeNumber(count);

if(flag==1)

printf("数字%d是回文数字\n",count);

elseif(flag==0)

printf("数字%d不是回文数字\n",count);

else

printf("输入错误\n");

charstr[100];

while(1)

{

cin>>str;

flag=PalindromeString(str);

if(flag==1)

printf("此字符串是回文字符串\n");

elseif(flag==0)

printf("此字符串不是回文字符串\n");

}

}

intmain()

{

test();

system("pause");

return0;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。