bu_xiang_qu_ming
幸福的攻城狮
采纳率0%
2016-09-01 06:27 阅读 1.2k

C程序问题,未报错,但运行时只显示了一部分。。。。。

验证4~100中的偶数(包括1和100)是否可以由两个质数相加得到,并且把所有表达式列出。
运用了for循环语句嵌套,if语句判断是否为质数,但是运行只从46开始.. T^T,大神告诉我我哪里错了
程序截图图片说明
显示结果:从46开始了图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • shihengzhen101 AlbertS 2016-09-01 06:44

    图片说明

    你把输出语句拿到循环的外边,应该差不多

    点赞 1 评论 复制链接分享
  • shihengzhen101 AlbertS 2016-09-01 06:35

    看到这个程序名我也是被震到了,居然这么厉害,还是中文的,我决定看看你的代码……

    点赞 评论 复制链接分享
  • hijack00 hijack00 2016-09-01 06:55

    哥德巴赫猜想:任何一个大于等于6的偶数均可表示为两个素数之和,而且肯定是两个奇素数,因为偶素数只有一个。所以你这个代码可以优化,能够降低很多没哟必要的判断。此外,建议将判断素数的部分拿出来做一个子函数。最后,正常应该是从6开始输出的6=3+3。

    点赞 评论 复制链接分享
  • dezhihuang 我是黄老邪 2016-09-01 08:04

    #include
    #include

    int main()
    {
    int b,c,e,i,f,g;
    for (i=4; i<=100; i+=2)
    {
    for (f=2; f<=i/2; f++)
    {
    e = 0;
    for (b=2; b<f; b++)
    {
    if (f%b == 0)
    {
    e = 1;
    break;

    }

    }

            if (e == 0)
            {
               g = 0;
               c = i - f;
               for (b=2; b<c; b++)
               {
                   if (c%b == 0)
                   {
                      g = 1;
                      break;
                   }    
    
    
               }      
            }
            if (g == 0)
            {
                printf("%d=%d+%d\n", i, f, c);   
                break;   
            }
        }
    }
    
    system("pause");
    
    return 0;
    

    }

    
    
    点赞 评论 复制链接分享
  • dezhihuang 我是黄老邪 2016-09-01 08:05
     #include <stdio.h>
    #include <stdlib.h> 
    
    int main()
    {
        int b,c,e,i,f,g;
        for (i=4; i<=100; i+=2)
        {
            for (f=2; f<=i/2; f++)
            {
                e = 0;
                for (b=2; b<f; b++)
                {
                    if (f%b == 0)
                    {
                       e = 1;
                       break;        
                    }   
                }    
    
                if (e == 0)
                {
                   g = 0;
                   c = i - f;
                   for (b=2; b<c; b++)
                   {
                       if (c%b == 0)
                       {
                          g = 1;
                          break;
                       }    
    
    
                   }      
                }
                if (g == 0)
                {
                    printf("%d=%d+%d\n", i, f, c);   
                    break;   
                }
            }
        }
    
        system("pause");
    
        return 0;
    }
    
    
    点赞 评论 复制链接分享

相关推荐