用数组编写一个函数判断一个回文数---求救

来源:百度知道 编辑:UC知道 时间:2024/05/11 03:54:57
3、利用数组编写一个函数判断一个整数是否为回文数。
【实验提示】
(1)从键盘读到一个整数后,可以先把该整数的每一为存到一个数组里(该数组的长度可以10,整数的位数不会10,假设为a[10]),注意要计算这个整数的位数位n。
(2)在数组里面利用循环比较第i位(a[i-1])和倒数第i位(应为数组中的第n-i个元素,n为从键盘中输入的整数的位数的个数,即a[n-i-1])是否相同。i从n/2变化。
能把代码写上吗??

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

void huiwen(char *str,int n);

int main(void)
{
char str[10];/* 作为储存字串的阵列 10 是容量 */
int len;/* 储存 计算字串的后 长度数据元 */

printf("请输入字串:");
scanf("%s",str);

len=strlen(str);
huiwen(str ,len);

system("pause");
return 0;
}

void huiwen(char *str,int n)/*字串指标 接受上方字串阵列的内容 , n 则接受字串的长度 */
{
int net=0;
int i,j;
/* J 是为了从后方开始比对 */
for(i=0,j=n-1;i<n/2;i++,j--)/* 一半 (除2) 为了像镜子一样的比对 内容 */
{
if(str[i]==str[j])
net++;
}
if(net==int(n/2))
printf("%s:是回文符串\n",str);
else
printf("%s:不是回文符串\n",str);
}

关键是你把位数取出来了,其它的很好办啊,

取位可以用整除和取模的方式

判断一个字符串是不是回文
int IsReverseStr(char *str)
{
int i,j;
int found=1;
if(str==NULL)