| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 536 人关注过本帖
标题:看看偶的分析有什么问题!
只看楼主 加入收藏
xinbuzai
Rank: 1
等 级:新手上路
帖 子:29
专家分:8
注 册:2010-7-2
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:3 
看看偶的分析有什么问题!
#include<stdio.h>
chen(int n)
    {
     int i,j;
     if(n%2||n==2 )
     {
         printf("Error:%d is an odd mumber or equals to2!\n",n);
         return;
     }
     for(i=n-2;i>=n/2;i--)
     {
         for(j=2;i%j;j++);
             if(j!=i)continue;
                 for(j=2;(n-i)%j;j++);
                      if(j!=n-i)continue;
         printf("%3d=%3d+%3d\n",n,i,n-i);
     }
}
main()
{
   int test_data[]={6,8,10};
   int i;
   for(i=0;i<3;i++)
       chen(test_data[i]);
       getch();
}

一、这个程序能在WINTC在编译,但不能在DEVC++上编译,总说有错误,就这个程序能简单说c与c++的区别吗?
二,程序分析:把数组test_data里面的三个数偶数6,8,10。分别写成两个质数相加。
{
     int i,j;
     if(n%2||n==2 )
     {
         printf("Error:%d is an odd mumber or equals to2!\n",n);
         return;
     }
这一段程序是判断所数组的元素是否为奇数和2

for(i=n-2;i>=n/2;i--)//第一个循环
     {
         for(j=2;i%j;j++);//第二个循环
             if(j!=i)continue;
                 for(j=2;(n-i)%j;j++);
                      if(j!=n-i)continue;
         printf("%3d=%3d+%3d\n",n,i,n-i);
     }
这一段,偶有点模糊!当N=6时,i=4(初值),i>=n/2,执行下面语句,进入第二个循环,j=2,i%j的值0,应该终止第二循环,执行printf语句呀!这个就有6=2+4的输出呀!但程序却不是这样,而是成功的输入出了6=3+3,8=5+3,10=7+3,10=5+5不解呀!!偶的分析有错吗?

[ 本帖最后由 xinbuzai 于 2010-7-3 08:54 编辑 ]
搜索更多相关主题的帖子: 分析 continue include return 
2010-07-02 22:37
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:10 
调试一下程序你就会知道了!程序简单自己调试一下就呕了!

愿用余生致力编程
2010-07-02 23:34
asd451006071
Rank: 2
等 级:论坛游民
帖 子:23
专家分:20
注 册:2008-11-30
收藏
得分:10 
程序代码:
#include<stdio.h>
#include<conio.h>
int chen(int n)
    {
     int i,j;
     if(n%2||n==2 )
     {
         printf("Error:%d is an odd mumber or equals to2!\n",n);
         return 0;
     }
     for(i=n-2;i>=n/2;i--)
     {
         for(j=2;i%j;j++);
             if(j!=i)continue;
                 for(j=2;(n-i)%j;j++);
                      if(j!=n-i)continue;
         printf("%3d=%3d+%3d\n",n,i,n-i);
     }
}
int main()
{
   int test_data[]={6,8,10};
   int i;
   for(i=0;i<3;i++)
       chen(test_data[i]);
       getch();
       return 0;
}
这是标准C的问题,你最好不要把INT神略掉,不然编译器肯定报错,TC这个最好不用,不是很好的支持标准C
2010-07-03 08:58
xinbuzai
Rank: 1
等 级:新手上路
帖 子:29
专家分:8
注 册:2010-7-2
收藏
得分:0 
偶顶顶!!!
2010-07-03 13:43
快速回复:看看偶的分析有什么问题!
数据加载中...
 
   



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

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