| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 966 人关注过本帖
标题:求100以内i,i+4,i+10 都为素数的自然数*/
只看楼主 加入收藏
lgp311
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2004-8-29
收藏
 问题点数:0 回复次数:5 
求100以内i,i+4,i+10 都为素数的自然数*/

/*求100以内i,i+4,i+10 都为素数的自然数*/ main() { int i,j,t=0,m=0,w=0,u=0,a[100],b[50],c[25]; for ( i=1;i<100;i++)/* 存贮i是素数*/ { for ( j=2;j<=i/2;j++) if ( i%j==0 ) t=1; if (t==0) {a[m]=i;m++; } t=0; }

for (i=0;i<m;i++)/* 存贮i+4是素数*/ { for ( j=2;j<=a[i];j++) if ( (a[i]+4)%j==0 ) t=1; if (t==0) { b[w]=a[i];w++; } t=0; } /* 存贮i+10是素数*/ for (i=0;i<w;i++) { for ( j=2;j<=b[i];j++) if ( (b[i]+10)%j==0 ) t=1; if (t==0) { c[u]=b[i];u++; printf("%d\n",b[i]);/*b[i]换成c[u]的效果不同??为何?*/ } t=0; }

getch(); } 

[此贴子已经被作者于2004-10-09 00:37:15编辑过]

搜索更多相关主题的帖子: 素数 自然数 
2004-10-09 00:35
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

如果把b[i] 换成 c[u] 那么我们就发现他输出的其实是一堆没有什么意义的数。

这个是为什么呢?

很简单,因为数组C在整个程序中根本就没得到赋值,C中的值是编译系统随即给C分配的数。

我们可以举例子来证明C在整个程序中都没被赋值。我们只要把你的程序修改一下:

main() { int i,j,t=0,m=0,w=0,u=0,a[100],b[50],c[25];

for( i=0;i<25;i++) c[i]=0;

for ( i=1;i<100;i++)/* 存贮i是素数*/ { for ( j=2;j<=i/2;j++) if ( i%j==0 ) t=1;

if (t==0) { a[m]=i; m++; }

t=0; }

for (i=0;i<m;i++)/* 存贮i+4是素数*/ { for( j=2;j<=a[i];j++ ) if( (a[i]+4)%j==0 ) t=1; if( t==0 ) { b[w]=a[i]; w++; }

t=0; } /* 存贮i+10是素数*/ for (i=0;i<w;i++) { for ( j=2;j<=b[i];j++) if ( (b[i]+10)%j==0 ) t=1; if (t==0) { c[u]=b[i]; u++; printf("%d\n",c[u]);/*b[i]换成c[u]的效果不同??为何?*/ }

t=0;

}

getch(); }

请注意程序的开始部分。 for( i=0;i<25;i++) c[i]=0; 就让C中的数组全部赋值为0了。 然后程序运行结果显示数组C中的值仍然为0。


淘宝杜琨
2004-10-10 11:23
lgp311
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2004-8-29
收藏
得分:0 

c[u]=b[i];这里没法赋值??为何?

但是在getch();之上加上:for (i=0;i<u;i++) printf("c[%d]=%d\n",i,c[i]);

这可以睇到数组c[25]是被赋值的呀!!

2004-10-11 13:32
风花雪月
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2004-10-2
收藏
得分:0 

我也来一个

三级题啊!!

#include<stdio.h> int isp(int number) { int i, tag = 1 ; if(number==1) return 0; for(i = 2 ; tag && i<= number / 2 ; i++) if(number % i == 0) tag = 0 ; return tag ; } void main() { int i,j,a[100]; int cnt=0; for(i=1;i<=90;i++) if(isp(i)&&isp(i+4)&&isp(i+10)) a[cnt++]=i; for(i=0;i<cnt;i++) printf("%d\n",a[i]); getch(); }


2004-10-11 21:32
liang30890136
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2004-9-29
收藏
得分:0 

用函数调用层次比较清楚点,这种几层嵌套我看别人的,是看不懂的,呵呵.

2004-10-12 11:41
风花雪月
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2004-10-2
收藏
得分:0 

呵呵!!

简单就好啊


2004-10-12 11:55
快速回复:求100以内i,i+4,i+10 都为素数的自然数*/
数据加载中...
 
   



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

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