| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 510 人关注过本帖
标题:请高手帮忙看下哪里出错了!为什么在屏幕上无法显示?
只看楼主 加入收藏
zd1505675319
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:139
专家分:178
注 册:2011-11-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
请高手帮忙看下哪里出错了!为什么在屏幕上无法显示?
要求输出100内的素数
#include<stdio.h>
#include<math.h>
int main()
{int i,j,n,a[101];
for(i=1;i<=100;i++)
    a[i]=i;
a[1]=0;
   
for(i=2;i<sqrt(100);i++)
    for(j=1+i;i<=100;j++)
        {
            if(a[i]!=0&&a[j]!=0)
            if(a[j]%a[i]==0)
                a[j]=0;
        }
printf("\n");
for(i=2,n=0;i<=100;i++)
    {if(a[i]!=0)
        {printf("%5d",a[i]);
            n++;
        }
    if(n==10)
        {printf("\n");
            n=0;
        }
    }
    printf("\n");
    return 0;
}
搜索更多相关主题的帖子: include return 
2011-11-16 13:00
empyuzhen
Rank: 2
等 级:论坛游民
帖 子:3
专家分:12
注 册:2011-11-15
收藏
得分:10 
for(i=2;i<(int) floor(sqrt(100.0));i++)
    for(j=1+i;j<=100;j++)

1、sqrt里面应该是double数,本身也是一个double类型,要用取整函数floor取整,并也要整形化,就(int)强制改变。
还有,第二个for循环里的终止条件打错了!要仔细!
2011-11-16 13:17
凌风一指
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:26
专家分:181
注 册:2011-11-9
收藏
得分:10 
恩,楼上的说的对。不过看你的算法太复杂了,给你个简单的。
程序代码:
#include<stdio.h>
#include<math.h>
int main()
{
    int i,j,n=100;
    int num=0;
    for(i=2;i<=n;i++)
    {
        for(j=2;j<=i-1;j++)
        {
            if(i%j==0)
                break;
        }
        if(j>=i)
        {
            printf("%d\t",i);
            num++;
        }
        if(num%10==0)
            printf("\n");
    }
} 

2011-11-17 14:44
快速回复:请高手帮忙看下哪里出错了!为什么在屏幕上无法显示?
数据加载中...
 
   



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

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