| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 689 人关注过本帖
标题:百内素数 不知道哪有毛病
只看楼主 加入收藏
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
百内素数 不知道哪有毛病
程序代码:
#include"stdio.h"
main()
{ int flag,i,j,a[100];
    for(i=1;i<=100;i++)
    {  
        for(j=2;j<=i/2;j++)
          if(i%j==0)
            flag=1;
    if(flag==1)
        ;
    else for(j=0;j<=99;j++)
        a[j]=i;
}
printf("%d",a);
}
输出百内素数哪错了啊  输出结果不对
2011-04-18 22:04
那又怎样
Rank: 2
等 级:论坛游民
帖 子:22
专家分:58
注 册:2011-4-11
收藏
得分:4 
#include"stdio.h"
main()
{
  int i,j;
    for(i=1;i<=100;i++)
    {  
        for(j=2;j<=i/2;j++)
          if(i%j==0)
            break;
        printf("%d  ",i);
    }
  printf("\n");
}
2011-04-18 22:10
爱海松涛
Rank: 3Rank: 3
来 自:安徽合肥
等 级:论坛游侠
帖 子:120
专家分:197
注 册:2011-2-25
收藏
得分:2 
楼上的可以啊
2011-04-18 22:14
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
回复 2楼 那又怎样
你把每个数都输出来了
2011-04-18 22:25
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:6 
这种问题需要一个永久方案,例如,写出一个函数。
程序代码:
#include <stdio.h>
#include <stdbool.h>

int main (void) {

        bool isp (int num);
        int n;

        for(n=2;n<=100;n++)
                if(isp(n)) printf ("%i ",n);
        printf ("\n");

        return 0;

}
bool isp (int num) {
        bool result=true;
        int i;
        for (i=num-1;i>1;i--) {
                if (num%i==0) {
                        result=false;
                        break;
                }
        }
        return result;
}

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-04-18 23:34
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:8 
程序代码:
else for(j=0;j<=99;j++)
        a[j]=i;
// 上面的语句会把数组 a 的所有元素都赋值为刚找到的质数,也就是说,外层循环结束后数组 a 的所有元素都是 97,是不能达到在数组 a 中保存 100 以内所有质数的目的的。应该在多定义一个变量 l 并赋初值 1,然后把上面的语句改写成下面那样:
else {
    a[l] = i;
    l++;
}

printf("%d",a);    // 这条语句只会输出数组 a 的起始地址,要数出书组的所有元素请用循环
2011-04-18 23:47
caity啊彻
Rank: 1
等 级:新手上路
帖 子:21
专家分:6
注 册:2011-4-19
收藏
得分:0 
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{int i,j;
long int sum=0;
for(i=2;i<100;i++)
{for(j=2;j<=i/2;j++)
    if(i%j==0)
    break;
    if(i%j!=0)
    printf("%d\t",i);}
    printf("\n");
   
}
2011-04-21 22:27
快速回复:百内素数 不知道哪有毛病
数据加载中...
 
   



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

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