下列给定的程序中,函数hn()的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。请改正函数fun()中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include <stdio.h>include <math.h>void fun(int a, int *b, int *c){ int i,j,d,y;for (i=3;i<=a/2;i=i+2)/*************found********

题目

下列给定的程序中,函数hn()的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。

请改正函数fun()中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

include <stdio.h>

include <math.h>

void fun(int a, int *b, int *c)

{ int i,j,d,y;

for (i=3;i<=a/2;i=i+2)

/*************found**************/

{y=0;

for (j=2;j<=sqrt((double)i);j++)

if (i%j==0) y=0;

if (y==1)

/*************found**************/

{ d=i-a;

for (j-2;j<=sqrt((double)d);

j++)

if (d%j==0) y=0;

if (y=-1)

{*b=i; *c=d;}

}

}

}

main ()

{ int a,b,c;

do

{ printf("\nInput a: ");

scanf ("%d", &a); }

while (a%2);

fun (a, &b, &c);

printf ("\n\n%d=%d+%d\n", a,b,c);

}


相似考题
更多“下列给定的程序中,函数hn()的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两 ”相关问题
  • 第1题:

    在考生文件夹下有一个工程文件sjt5.vbp。在窗体文件中已经给出了全部控件及部分程序。程序运行时,在文本框Text1中输入一个大于2的偶数,并单击“分解为”按钮,则可以将该偶数分解为两个素数之和,且要求其中一一个素数是所能够分解出的最小的素数(一个偶数有时可以分解为多种素数的组合,例如24可以分解为5和19,也可以分解为11和13,要求取含有最小素数的组合,如图8所示)。要求编写“分解为”按钮事件过程中“考生编写程序开始”和“考生编写程序结束”之间的代码.以实现上述功能。过程IsPrime用来判断一个数是否为素数,如果是,返回值为True,否则返叵值为False。 注意:不得修改原有程序和控件的属性。至少正确运行一次程序,且运行时在文本框中输入23456,单击“分解为”按钮,将结果显示在标签中,否则无成绩。最后把修改后的文件按原文件名存盘。


    正确答案:
    【知识点拨】素数的判断准则就是看该数除了l和其本身外有无其他约数。
    【审题分析】本题程序设计思路:两个整数之和为n的组合有:l 和n-1、2和n-2...i和n-i,在For循环中按前一个加数由小到大的顺序,依次通过调用函数IsPfime来判断每个组合中的两个加数是否均为素数,第一个找到的素数组合中即含有能够分解出的最小素数。由于1不是素数,故循环变量的初值从2开始;由于i和n-i的组合与n-i和i组合在本题中呵被视为相同组合,故循环变量的终值设定为n/2 即可。
    【操作步骤】
    【步骤】:打开考生文件中的本题工程文件sjt5 vbp,在代码编辑窗口的指定位置编写以下代码:
    参考代码:

    步骤2:按要求将文件保存至考生文件夹中。
    步骤3:按<F5>键运行程序,在文本框中输入23456,单击“分解为”按钮。

  • 第2题:

    :四个不同的真分数的分子都是1,它们的分母有两个是奇数,两个是偶数,而且两个分母是奇数的分数之和等于两个分母是偶数的分数之和。这样的两个偶数之和至少为( )。

    A.14

    B.16

    C.18

    D.20


    正确答案:B

  • 第3题:

    题目内容: 对任意给定的两个正整数n和m,100<n<m<1000, 计算这两个数之间所有素数之和,包含n、m自身。 输入格式: 两个大于0的3位正整数 输出格式: 输出n与m之间的素数之和 输入样例: 200 800 输出样例: 45851


    先看题目,再看给定资料,边看边构思。, 把给定资料与题目结合起来看,边看边构思。

  • 第4题:

    给定程序MODll.C中函数fun的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。

    请改正函数fun中指定部位的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


    正确答案:(1)y=1; (2)d=a-i;
    (1)y=1; (2)d=a-i; 解析:本题中函数的功能是为一个偶数查找两个素数,这两个素数之和等于该偶数。其中,函数fun用形参a放偶数,指针b和c放两个素数。把一个偶数分解成1和(x-1)两个数是否是素数,再分解为3和(x-3)这两个数,判断是否是素数,依此类推,直到找出这两个素数为止。本题中把偶数分解为i和d两个素数。判断i是否是素数,如果i不是素数,则i+2再循环;如果i是素数,则d=x-i,然后判断d是否是素数。

  • 第5题:

    四个不同的真分数的分子都是l,它们的分母有两个是奇数,两个是偶数,而且两个分母是奇数的分数之和等于两个分母是偶数的分数之和。这样的两个偶数之和至少为( )。

    A. 14
    B. 16
    C. 18
    D. 20

    答案:B
    解析: