网友您好, 请在下方输入框内输入要搜索的题目:
阅读以下说明和C程序代码,将应填入(n)处的字句写在对应栏内。
【说明】
下面C程序代码的功能是:对于输入的一个正整数n(100≤n<1000),先判断其是否是回文数(正读反读都一样的数)。若不是,则将n与其反序数相加,再判断得到的和数是否为回文数,若还不是,再将该和数与其反序数相加并进行判断,依此类推,直到得到一个回文数为止。例如,278不是回文数,其反序数为872,相加后得到的1150还不是回文数,再将1150与其反序数511相加,得到的1661是回文数。
函数int isPalm(long m)的功能是:将正整数m的各位数字取出存入数组中,然后判断其是否为回文数。若m是回文数则返回1,否则返回0。
【C程序代码】
include <stdio.h>
include <stdlib.h>
int isPalm(long m)
{ /*判断m是否为回文数*/
int i = 0, k = 0;
char str[32];
while (m > 0) { /*从个位数开始逐个取出m的各位数字并存入字符数组str*/
str[k++] =(1)+ '0';
m = m / 10;
}
for(i = 0; i < k/2; i++) /*判断str中的k个数字字符序列是否是回文*/
if ( str[i] != str[(2)] ) return 0;
return 1;
}
int main ( )
{
long n, a, t;
printf("input a positive integer:"); scanf("%ld",&n);
if (n < 100 || n > =1000) return -1 ;
while((3)) { /*n不是回文数时执行循环*/
printf("%ld-> ", n);
for(a = 0, t = n; t > 0; ) { /*计算n的反序数并存入a*/
a =(4)*10 + t % 10; t = t / 10;
} /*end of for*/
n =(5); /*与反序数求和*/
} /*end of while*/
printf ("%id\n",n);
system("pause"); return 0;
}
参考答案