下列程序的功能是:寻找并输出11至999之间的数m,它满足m,m2和m3均为回文数。所谓回文数是指其各位数字左右对称的整数,例如121,676,94249等。满足上述条件的数如m=11,m2=121,m3=1331皆为回文数。请编制函数int jsValue(long n)实现此功能,如果是回文数,则函数返回1,反之则返回0。最后把结果输出到文件out43.dat中。注意:部分源程序已给出。请勿改动主函数main()。include<stdio.h>int jsValue(long n){}main (

题目

下列程序的功能是:寻找并输出11至999之间的数m,它满足m,m2和m3均为回文数。所谓回文数是指其各位数字左右对称的整数,例如121,676,94249等。满足上述条件的数如m=11,m2=121,m3=1331皆为回文数。请编制函数int jsValue(long n)实现此功能,如果是回文数,则函数返回1,反之则返回0。最后把结果输出到文件out43.dat中。

注意:部分源程序已给出。

请勿改动主函数main()。

include<stdio.h>

int jsValue(long n)

{

}

main ( )

{

long m;

FILE *out;

out=fopen ("out43.dat", "w");

for (m=11;m<1000;m++)

{

if(jsValue(m) && jsValue(m*m) && jsValue(m*m*m))

{

printf ("m=%41d, m*m=%61d, m*m*m=%81d", m, m'm, m*m*m);

fprintf (out, "m=%41d, m*m=%61d, m*m*m=%81d\n", m, m*m, m*m*m);

}

}

fclose (out);

}


相似考题

2.阅读以下说明和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;}

更多“下列程序的功能是:寻找并输出11至999之间的数m,它满足m,m2和m3均为回文数。所谓回文数是指其各位 ”相关问题
  • 第1题:

    程序PROGl.G的功能是:寻找并输出ll至999之间的数m,它满足m、m2和m3均为回文数。所谓回文数是指其各位数字左右对称的整数,例如l21,676,94249等。满足上述条件的数如m=11,m2=121,m3=1331皆为回文数。请考生编制函数int JsValue(long m)实现此功能,如果是回文数,则函数返回l,反之则返回0。最后把结果输出到文件out.dat中。 注意:部分源程序存放在test.c文件中。 请勿改动主函数main。


    正确答案:
    【审题关键句】回文数字。
    【解题思路】
    ①定义长整型变量i、n,并分别赋给初值m、0(m的值等于主函数中m循环变量的值)。
    ②当变量i的值非零时,即m值不为0时,把n乘以l0加上i除以l0所得的余数的和赋给变量n,把i除以l0所得的商,赋给变量i。实现对整数i各位上的数字进行逆序排列。
    ③当退出while循环时,判断n是否等于m,如果两者相等,则说明参数m是回文,返回l,否则,不是回文,返回0。
    【参考答案】

  • 第2题:

    7、打印出所有的水仙花数。所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。 m=100:999 m1= (m/100); m2= ((m/10),10); m3= (m,10); if m== disp(m); end end 注意:每个空用中文逗号隔开


    static void Main(string[] args) { int a, b, c; for (int n = 100; n <= 999; n++) { a = n % 10;//个位数 b = n / 10 % 10 ;//十位数 c = n / 100;//百位数 if (n == a * a * a + b * b * b + c * c * c) { Console.WriteLine(n); } } Console.ReadLine(); }

  • 第3题:

    打印出所有的水仙花数。所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。 m=100:999 m1= (m/100); m2= ((m/10),10); m3= (m,10); if m== disp(m); end end 注意:每个空用中文逗号隔开


    static void Main(string[] args) { int a, b, c; for (int n = 100; n <= 999; n++) { a = n % 10;//个位数 b = n / 10 % 10 ;//十位数 c = n / 100;//百位数 if (n == a * a * a + b * b * b + c * c * c) { Console.WriteLine(n); } } Console.ReadLine(); }

  • 第4题:

    试题二(共 15 分)

    阅读以下说明和 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("%ld\n",n);

    system("pause"); return 0;

    }


    正确答案:


  • 第5题:

    【其它】任务二:实现查询功能关键算法并绘制流程图(30 分) 所谓回文数是从左至右与从右至左读起来都是一样的数字,如:121 是一个回文数。编写程序,求出 100—200 的范围内所有回文数的和。 要求:使用循环结构语句实现,直接输出结果不计分。


    正确