求出000之间所有的素数.docx

上传人:b****0 文档编号:18171418 上传时间:2023-08-13 格式:DOCX 页数:11 大小:34.67KB
下载 相关 举报
求出000之间所有的素数.docx_第1页
第1页 / 共11页
求出000之间所有的素数.docx_第2页
第2页 / 共11页
求出000之间所有的素数.docx_第3页
第3页 / 共11页
求出000之间所有的素数.docx_第4页
第4页 / 共11页
求出000之间所有的素数.docx_第5页
第5页 / 共11页
求出000之间所有的素数.docx_第6页
第6页 / 共11页
求出000之间所有的素数.docx_第7页
第7页 / 共11页
求出000之间所有的素数.docx_第8页
第8页 / 共11页
求出000之间所有的素数.docx_第9页
第9页 / 共11页
求出000之间所有的素数.docx_第10页
第10页 / 共11页
求出000之间所有的素数.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

求出000之间所有的素数.docx

《求出000之间所有的素数.docx》由会员分享,可在线阅读,更多相关《求出000之间所有的素数.docx(11页珍藏版)》请在冰点文库上搜索。

求出000之间所有的素数.docx

求出000之间所有的素数

C语言程序设计

综合实验报告

 

学院:

信息科学与工程学院

专业:

自动化1002班

学号:

201004134070

姓名:

吴君

指导老师:

2011年6月25日

武汉科技大学

求出200——1000之间所有的素数,要求

1)调用函数判断某数是不是素数;

2)输出结果,每行输出十个;

程序:

#include

#include

intjudge(intn)//定义一个函数

{inti,k;

k=sqrt(n);

for(i=2;i<=k;i++)//判断I是否是素数

{

if(n%i==0)

{break;

}

}

if(i>k)

{

return1;//返回一个函数值

}

return0;

}

voidmain()

{inti,m,k;

for(i=201;i<1000;i=i+2)

{

m=judge(i);//调用自定义函数

if(m==1)

{

printf("%4d",i);//输出结果

k++;

if(k%10==0)//大于10换行

printf("\n");

}

}

}

输出结果:

211223227229233239241251257263

269271277281283293307311313317

331337347349353359367373379383

389397401409419421431433439443

449457461463467479487491499503

509521523541547557563569571577

587593599601607613617619631641

643647653659661673677683691701

709719727733739743751757761769

773787797809811821823827829839

853857859863877881883887907911

919929937941947953967971977983

991997Pressanykeytocontinue

利用随机函数产生200个正整数,统计这200个正整数中相同的个数。

要求

1)用标准函数编程并输出;

2)利用标准函数和结构体编程输出结果;

程序:

#include

#include

#include

voidmain()

{intarray[200]={0},num[100]={0};

inti,j,k,h,b;

printf("得到的两位数是:

");

for(i=0;i<200;i++)//获得200个两位数

{

array[i]=rand()%90+10;

printf("%3d",array[i]);h++;

if(h%20==0)

{

printf("\n");}

}

for(j=0;j<200;j++)//统计两位数的个数

{

num[array[j]]++;

}

printf("统计结果为:

");

for(k=10;k<100;k++)

if(num[k]!

=0)

{

printf("%4d->%d",k,num[k]);//输出结果

b++;

if(b%20==0)

{printf("\n");}

}

}

其结果为:

得到的两位数是:

5127445099745828628445757197715135726746

9134427332626196181557462128793227293594

9361121343843171933887249297678993318968

8675605228565042146896556079806076611348

1933647446602696813834496683573818227981

7375595834403766937681452492707957136752

5670811645278514819290803144262067511797

7757434315998948215842266680431810215245

5069942748136591126041662450169188795814

1164632958487018472748538883879110575374

统计结果为:

10->211->112->213->414->315->216->217->118->419-

>120->121->322->124->326->327->528->329->231->332->2

33->134->335->237->138->340->141->142->343->444->245->44

6->347->148->549->150->451->352->353->255->1

56->257->558->559->160->561->362->263->164->265->166->46

7->468->269->170->371->372->173->274->375->3

76->277->179->580->381->583->284->285->186->187->288->28

9->390->191->492->393->494->296->397->399->2

Pressanykeytocontinue

其结构体程序:

#include

#include

#include

structArray

{

intarr[200];

};

intmain(intargc,char*argv[])

{

srand((unsigned)time(NULL));

ArrayarrStr;

//intarr[200]={0};//保存产生的两位数

intnum[90]={0};//记录重复出现次数

inttemp=0;

//产生随机数

for(inti=0;i<200;i++)

{

temp=rand()%90+10;

arrStr.arr[i]=temp;

}

//统计出现次数

for(intj=0;j<200;j++)

{

num[arrStr.arr[j]-10]++;

}

//打印结果

printf("每个数出现的次数统计为:

\n");

for(intk=0;k<90;k++)

{

if(num[k]>0)

{printf("%2d->%d",k+10,num[k]);

if((k+10)%20==0)

{printf("\n");}

}

}

return0;

}

结果是:

每个数出现的次数统计为:

10->511->212->213->314->315->316->317->318->220->2

21->323->524->125->226->127->328->129->230->131->232->333->434->235

->137->438->139->240->1

41->642->343->344->145->246->147->348->349->450->351->152->353->454

->155->256->157->258->359->160->4

61->264->365->166->467->268->269->170->171->372->173->274->476->377

->378->479->380->1

81->382->283->384->186->287->288->189->490->191->192->293->294->395

->396->397->298->499->3

Pressanykeytocontinue

题目二

使用函数指针完成数组排序,要求

1)按冒泡选择法进行升序排列或者降序排列:

2)程序包括sort,swap,ascending,descending,等函数。

其中sort接受ascending或descending函数指针参数、一个整形数组合数组长度。

3)函数原形提供如下:

Voidsort(int[],constint,int(*)(int,int));

intascending(int,int);

intdescending(int,int);

4)具有提示使用者选择升序或者降序排列功能。

如果使用者输入1,则函数sort传递ascending函数指针,数组按升序排列输出,输入2则函数sort传递descending函数指针,数组将会按降序排列并输出。

程序:

#include

#include

intascending(inta,intb)//定义函数;作升序用

{

return(a

}

intdescending(inta,intb)//定义函数;作降序用

{

return(a>b);

}

voidsort(inta[],constintn,int(*p)(int,int))//定义排序函数,其中用函数指针传递排序方式

{

inti,j=0,temp=0;

for(i=0;i

{

for(j=i+1;j

{

if(p(a[j],a[i]))

{

temp=a[i];

a[i]=a[j];

a[j]=temp;

}

}//endfor(j...)

}//for(i...)

}

voidmain()

{

intarr[10]={0};

inti=0;

intflag=0;//标志位,排序选择,若为1则升序排序,若为2降序

printf("请输入10个数进行排序:

\n");

for(i=0;i<10;i++)//循环输入数组的元素值

{

scanf("%d",&arr[i]);

}

printf("请输入排序方式(1升序;2降序):

");

scanf("%d",&flag);//输入数字选择用那种排序(升或降)

if(flag==1)

{

sort(arr,10,ascending);

printf("升序排序后:

\n");

for(i=0;i<10;i++)

{

printf("%3d",arr[i]);//输出排序后的数组

}

}

if(flag==2)

{

sort(arr,10,descending);

printf("降序排序后:

\n");

for(i=0;i<10;i++)

{

printf("%4d",arr[i]);

}

}

printf("\n");

}

结果:

升序为:

请输入10个数进行排序:

15452535859565557554

请输入排序方式(1升序;2降序):

1

升序排序后:

15253545545565758595

Pressanykeytocontinue

降序为:

请输入10个数进行排序:

11253210542631121691

请输入排序方式(1升序;2降序):

2

降序排序后:

91543231262516121110

Pressanykeytocontinue

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 少儿英语

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2