| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 893 人关注过本帖
标题:困扰我好久了,,,大伙帮忙
只看楼主 加入收藏
陈艺深13
Rank: 2
等 级:论坛游民
帖 子:22
专家分:11
注 册:2012-7-26
结帖率:100%
收藏
已结贴  问题点数:8 回复次数:12 
困扰我好久了,,,大伙帮忙
给定程序modi.c中函数fun的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。
    请改正函数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);
}


搜索更多相关主题的帖子: fun include 
2012-08-11 09:03
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
收藏
得分:1 
以后发帖不要把别的地方的文字直接复制过来,你自己也稍微排下版,乱糟糟的代码谁有心情看,你说呢
2012-08-11 10:11
ldzy
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:64
专家分:339
注 册:2012-7-30
收藏
得分:1 
函数fun的思路大概是:
先找到一个小于等于这个a的一半素数i,再判断a-i是不是素数,是则输出,不是则找下一个i,判断a-i...

算了,楼下几位大哥威武,请无视我。。。。




[ 本帖最后由 ldzy 于 2012-8-12 11:20 编辑 ]
2012-08-11 12:46
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
楼主每次只提问不思考,没想法,别学了,浪费时间

总有那身价贱的人给作业贴回复完整的代码
2012-08-11 14:09
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
呵呵 祝楼主成功
2012-08-11 14:11
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
在考二级 哈哈 坑爹的教育。

梅尚程荀
马谭杨奚







                                                       
2012-08-11 14:39
jokerbat
Rank: 2
等 级:论坛游民
帖 子:77
专家分:91
注 册:2012-2-1
收藏
得分:0 
我一般碰到这样的问题,我都会拿lz当高手对待
2012-08-11 15:08
wiskle
Rank: 1
等 级:新手上路
帖 子:3
专家分:7
注 册:2012-7-26
收藏
得分:2 
#include "stdafx.h"
#include <stdio.h>
#include <math.h>

/* 求一个偶数的值,使之等于两个素数的和 */
void  fun(int  a, int  *b, int  *c)
{  
    int i, j;
    int temp1 = 0, temp2 = 0;

    for(i=2; i<a/2; i++)
    {
        if(a % i == 0)
        {
            continue;
        }
        else
        {
            temp1 = i;
            temp2 = a - i;
        }
        
        for(j = 2; j< (temp2/2 + 1); j++ )
        {
            if(temp2 % j == 0)
            {
                break;
            }
            else
            {
                *b = temp1;
                *c = temp2;
            }
        }

    }
   

}



int _tmain(int argc, _TCHAR* argv[])
{
    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);

    return 0;
}



你参考下这个吧,你那个函数写的我实在 没看懂。
2012-08-11 16:10
a7882669
Rank: 4
等 级:业余侠客
帖 子:192
专家分:290
注 册:2012-4-17
收藏
得分:0 
好吧。。。  虽然我不怎么样,不过我还是  同意  前几楼的观点
2012-08-11 18:45
水古奇影
Rank: 2
等 级:论坛游民
帖 子:16
专家分:78
注 册:2011-5-16
收藏
得分:2 
//鉴于楼主是二级C,因此并不牵扯许多专业深度的问题对此“无语”程序做过大的修改
//楼上ID:wiskle的程序有点儿问题哦~~自己找找看看

#include <math.h>
#include <stdio.h>
void  fun(int  a,int  *b,int  *c)
{  int  i,j,d,y;
   for(i=3;i<=a/2;i=i+1) {
/**************found**************/
      y=1;                                   //错哪里?修改y = 0 >> y = 1
      for(j=2;j<=sqrt((double)i);j++)
         {
             if(i%j==0)  
               y=0;                       //最好在此语句后加入break语句         
         }
      if(y==1)
       {
/**************found**************/
         d=a-i;                          //错哪里?修改:d = i - a >> d = a - i
         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: (notice: Do not enter  2 or 4) ");  
       scanf("%d",&a);
   }while(a%2);
   fun(a,&b,&c);
   printf("\n\n%d = %d + %d\n",a,b,c);
}
2012-08-12 09:06
快速回复:困扰我好久了,,,大伙帮忙
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018307 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved