请编写函数num(int m,int k,int xx[]),陔函数的功能是:将大于整数m且与m相邻的k个素数存入数组xx中传回。最后调用readWriteData()从IN.DAT文件中读取10组数据.分别得出结果,且把结果输出到文件OUT.DAT中。

admin2013-12-17  39

问题 请编写函数num(int m,int k,int xx[]),陔函数的功能是:将大于整数m且与m相邻的k个素数存入数组xx中传回。最后调用readWriteData()从IN.DAT文件中读取10组数据.分别得出结果,且把结果输出到文件OUT.DAT中。
    例如:11 4.则应输出:13 17 19 23
    注意:部分源程序已经给出。
    请勿改动主函数mainData()和输出函数readWriteData()的内容。
    试题程序:
    #include
    #include
    void readWriteData();
    void num(int m,int k,int xx[])
    {
    }
    main()
    {
    int m.n,xx[1000];
    printf(“\nPlease enter two integers:”);
    scanf(“%d%d”,&m,b.n);
    num(m,n,xx);
    for(m=0;m    printf(“%d”,xx[m]);
    printf(“\n”);
    readWriteData()
    }
    void readWriteData()
    {
    int m.n,xx[1000],i;
    FILE*rf,*wf;
    rf=fopen(“IN.DAT”,“r”);
    wf=fopen(”OUT.DAT”,“W”);
    for(i=0;i<10;i++)
    {
    fscanf(rf,“%d%d”,&m,&n);
    num(m,n,xx);
    for(m=0,m    fprintf(wf,“%d”,xxEm]);
    fprintf(wf,“\n”);
    }
    fclose(rf);
    fclose(wf);

选项

答案Void num(int m,int k,int xx[]) { int data=m+1; //定义整形变量data,并赋初值m+1 int half,n=0,i; while(1)//判断data是否为素数 { half=data/2; for(i=2;i<=half;i++) if(data%i==0) break; if(i>half)//i>half说明i是素数 { xx[n]=data;//将d放入数组xx中 n++;//计数器加1 } if(n>=k) //如果找到了k个满足的素数,则跳出循环 break; data++; //继续找下一个素数 } }

解析 num()函数的功能是将大于整数m且符合与m相邻的k个素数,存入数组xxE]中。本题中,在找到符合的素数后,将data放入数组xx中,计数嚣此时加1。利用循环来找到符合条件的素数,然后跳出循环继续寻找下一个素数。
转载请注明原文地址:https://kaotiyun.com/show/5AZZ777K
0

最新回复(0)