| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 650 人关注过本帖
标题:大家帮我看一下 为什么得不到结果呢
只看楼主 加入收藏
温顾
Rank: 2
等 级:论坛游民
帖 子:28
专家分:21
注 册:2011-8-6
收藏
得分:0 
回复 3楼 smallkid190
这回只输出2,3 郁闷
#include <stdio.h>
#include <math.h>
int main()
{
    int i,j,num=0,k=0;
    int a[100];
    for (i=0;i<=99;i++)
    a[i]=i+1;
    for(i=1;i<=99;i++)
    {
        for(j=2;j<=sqrt(a[i]);j++)
        {
            if(a[i]%j==0)
            k=1;            
        }
   
        if(k==0)
        {
         if(num%5==0)
         {
             printf("\n");
         }
         num++;
         printf("%3d",a[i]);
        }
    }

        return 0;
2011-08-06 22:33
smallkid190
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:134
专家分:969
注 册:2011-4-23
收藏
得分:0 
主要错误是因为没用对k进行重新赋值...
如果你模拟运算一下就会发现k从3开始一直等于1,所以算到3之后就不再进行if语句的判断了...
只要在for i与for j进行k的初始化近行了..
就像:for(i=1;i<=99;i++)
    {   k=0;
        for(j=2;j<=sqrt(a[i]);j++)
        .....
     }

不懂就是不懂...
2011-08-06 23:28
smallkid190
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:134
专家分:969
注 册:2011-4-23
收藏
得分:0 
有一些说法错误...
是从a[i]=3的时候,if(k==0)就不再成立了...if里面的语句也就不再判断了...
总之知道哪错就行了...不要管我哪里说错了...

不懂就是不懂...
2011-08-06 23:32
温顾
Rank: 2
等 级:论坛游民
帖 子:28
专家分:21
注 册:2011-8-6
收藏
得分:0 
回复 13楼 smallkid190
嗯 这样是对的 谢谢哈 我知道了
2011-08-07 08:49
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
判断个素数还要用什么数组啊  

如果楼主想学习数组的话 你就递归打印斐波那契数列

然后去用剪枝优化它

                                         
===========深入<----------------->浅出============
2011-08-07 09:21
温顾
Rank: 2
等 级:论坛游民
帖 子:28
专家分:21
注 册:2011-8-6
收藏
得分:0 
回复 15楼 laoyang103
嗯 谢谢拉
2011-08-07 10:07
快速回复:大家帮我看一下 为什么得不到结果呢
数据加载中...
 
   



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

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