| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 423 人关注过本帖
标题:新手学C++,哪位好人帮忙看下这程序咋回事?
只看楼主 加入收藏
a0807061987
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-9-25
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
新手学C++,哪位好人帮忙看下这程序咋回事?
#include <stdio.h>
int main()
{
    int a,b,c,i;
    int k[1000];
    scanf("%d%d",&a,&b);        //输入a,b两个数判断其内素数
        for (a=i;i<=b;i++);     //从a到b进行循环
        {
          for(c=2;c<=i/2;c++);      //判断是否整除
        
            if (i%c==0)
                break;---------------检查说这里是非法打断?怎么回事?
            if (i%c!=0) k[i]=1;
             k[i]=k[i]+1;     //统计数组内素数个数
        
            printf("%d",k[i]);
        }
       return 0;

}
搜索更多相关主题的帖子: 好人 
2010-10-17 16:02
yangang2
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:64
专家分:432
注 册:2010-9-1
收藏
得分:6 
你这个逻辑有问题呀!我这里有一个程序你看看和你的对比一下:
#include "stdio.h"
#include"math.h"
main()
{  
    int i,k,a,b,num;
    scanf("%d,%d",&a,&b);
    for(num=a;num<=b;num++)
    {
        k=sqrt(num);
        for(i=2;i<=k;i++)
            if(num%i==0)
                break;
        if(i>k) printf("%5d",num);
    }   
    printf("\n");
}
你的那几句:if (i%c!=0) k[i]=1;
          k[i]=k[i]+1;     //统计数组内素数个数
          printf("%d",k[i]);
不知道是什么逻辑。你要注意那个for(c=2;c<=i/2;c++); 即循环语句成为一个空语句是什么意思?和我那个程序对比一下就知道该怎么改了吧!
2010-10-17 17:02
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
收藏
得分:6 
程序代码:
#include <stdio.h>
int main()
{
    int a,b,c,i;
    int k=0;                        //不需要定义数组
    scanf("%d%d",&a,&b);        //输入a,b两个数判断其内素数
    for (i=a;i<=b;i++)     //换为 i=a ,且for()后面没逗号!
    {
        for(c=2;c<=i/2;c++)      //判断是否整除
          if (i%c==0)
             break;
        if(c>i/2)
             k=k+1;     //统计数组内素数个数 
    }
    printf("%d",k);             //移到括号外,输出总数
    return 0;

} 
不是什么逻辑不逻辑的问题,就是有些地方没注意罢了!

If You Want Something, Go Get It, Period.
2010-10-17 18:02
abc3210cba
Rank: 2
等 级:论坛游民
帖 子:63
专家分:97
注 册:2010-9-26
收藏
得分:6 
for (a=i;i<=b;i++);     //从a到b进行循环
你那个错误是这句引起的,i没赋值拿去整除当然错了。
还有统计个数搞个什么数组说明你语法基础掌握还不好,改过后的K=K+1;一般人也就写K++;
2010-10-17 18:18
a0807061987
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-9-25
收藏
得分:0 

        if(c>i/2)------------这个来统计个数不对吧。

             k=k+1;     //统计数组内素数个数

楼上各位的程序都能运行。但是结果不对啊
   
2010-10-18 12:00
a0807061987
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-9-25
收藏
得分:0 
问题解决了,是我理解错了,感谢各位啊
2010-10-18 12:40
快速回复:新手学C++,哪位好人帮忙看下这程序咋回事?
数据加载中...
 
   



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

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