求出000之间所有的素数.docx
- 文档编号:18171418
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:11
- 大小:34.67KB
求出000之间所有的素数.docx
《求出000之间所有的素数.docx》由会员分享,可在线阅读,更多相关《求出000之间所有的素数.docx(11页珍藏版)》请在冰点文库上搜索。
求出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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 求出 000 之间 所有 素数