C语言数组编程题及解答.docx
- 文档编号:25795860
- 上传时间:2023-06-14
- 格式:DOCX
- 页数:16
- 大小:38.21KB
C语言数组编程题及解答.docx
《C语言数组编程题及解答.docx》由会员分享,可在线阅读,更多相关《C语言数组编程题及解答.docx(16页珍藏版)》请在冰豆网上搜索。
C语言数组编程题及解答
C语言数组编程题及解答
【程序1】
用筛选法求100之内的素数
筛选法又称筛法,是求不超过自然数N(N>1)的所有质数的一种方法。
据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274~194年)发明的,又称埃拉托斯特尼筛子。
具体做法是:
先把N个自然数按次序排列起来。
1不是质数,也不是合数,要划去。
第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。
2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。
3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。
这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数。
因为希腊人是把数写在涂腊的板上,每要划去一个数,就在上面记以小点,寻求质数的工作完毕后,这许多小点就像一个筛子,所以就把埃拉托斯特尼的方法叫做“埃拉托斯特尼筛”,简称“筛法”。
#include
#include
voidmain()
{
inti,j;
inta[100];
for(i=0;i<100;i++)
a[i]=i+1;
for(i=1;i<100;i++)
{
if(a[i]==0)
continue;
for(j=i+1;j<100;j++)
if(a[j]%a[i]==0)
a[j]=0;
}
for(j=1;j<100;j++)//j从1开始,去除a[0](其值为1),因为1既不是质数,也不是合数
if(a[j]!
=0)
printf("%d,",a[j]);
printf("\n");
}
【程序2】
题目:
一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如6=1+2+3.编程找出1000以内的所有完数。
程序源代码:
#include
intmain()
{
intk[10];
inti,j,n,s;
for(j=2;j<1000;j++)
{
n=-1;
s=j;
for(i=1;i { if((j%i)==0) { n++; s=s-i; k[n]=i; } } if(s==0)//说明是完数 { printf("%disawanshu: ",j); for(i=0;i<=n;i++) printf("%d",k[i]); printf("\n"); } } return1; } 【程序3】 题目: 用选择法对10个数进行从大到小排序 1.程序分析: 可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 数组 编程 解答