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

题目

下列程序的功能是:寻找并输出11至999之间的数m,满足m、m2和m3均为回文数。所谓回文数是指各位数字左右对称的整数,例如121、676、94249等。满足上述条件的数,如m=11、m2=121、m3=1331,皆为回文数。请编制函数int svalue(long m)来实现此功能。如果是回文数,函数返回1,反之则返回0。最后,把结果输出到文件out.dat中。部分源程序已给出。请勿改动主函数main()的内容。#include <stdio.h>#include <stdlib.h>#include <string.h>int jsValue(long n){ }main(){ long m; FILE *out; out = fopen("out.dat", "w"); for (m=11; m<1000; m++) if (jsValue(m) && jsValue(m*m) && jsValue(m*m*m)) { printf("m=%4ld,m*m=%6ld,m*m*m=%8ld \n", m, m*m, m*m*m); fprintf(out,"m=%4ld,m*m=%6ld,m*m*m=%8ld \n", m, m*m, m*m*m); } fclose(out);}


相似考题

1.阅读以下说明和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题:

    试题二(共 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;

    }


    正确答案:


  • 第2题:

    作业5-1 (教材p102) 习题4-6 编写应用程序,统计并逐行显示(每行5个数)在区间[10 000,20 000]上的回文数。所谓回文数,就是该数字无论正读还是反读,数字都相等。


    A

  • 第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题:

    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(); }

  • 第5题:

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


    正确