c语言综合实验程序设计.docx

上传人:b****6 文档编号:16242207 上传时间:2023-07-12 格式:DOCX 页数:10 大小:33.81KB
下载 相关 举报
c语言综合实验程序设计.docx_第1页
第1页 / 共10页
c语言综合实验程序设计.docx_第2页
第2页 / 共10页
c语言综合实验程序设计.docx_第3页
第3页 / 共10页
c语言综合实验程序设计.docx_第4页
第4页 / 共10页
c语言综合实验程序设计.docx_第5页
第5页 / 共10页
c语言综合实验程序设计.docx_第6页
第6页 / 共10页
c语言综合实验程序设计.docx_第7页
第7页 / 共10页
c语言综合实验程序设计.docx_第8页
第8页 / 共10页
c语言综合实验程序设计.docx_第9页
第9页 / 共10页
c语言综合实验程序设计.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c语言综合实验程序设计.docx

《c语言综合实验程序设计.docx》由会员分享,可在线阅读,更多相关《c语言综合实验程序设计.docx(10页珍藏版)》请在冰点文库上搜索。

c语言综合实验程序设计.docx

c语言综合实验程序设计

C语言程序设计

综合实验报告

 

学院:

专业:

学号:

姓名:

指导老师:

 

武汉科技大学

题目一:

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

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

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

程序:

#include

#include

intjudge(intn)

{inti,k;

k=sqrt(n);

for(i=2;i<=k;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)

printf("\n");

}

}

}

输出结果:

211223227229233239241251257263

269271277281283293307311313317

331337347349353359367373379383

389397401409419421431433439443

449457461463467479487491499503

509521523541547557563569571577

587593599601607613617619631641

643647653659661673677683691701

709719727733739743751757761769

773787797809811821823827829839

853857859863877881883887907911

919929937941947953967971977983

991997

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

要求:

要求分别利用标准函数、数组编程,并输出正确的统计结果和利用标准函数、结构体编程,并输出正确的统计结果。

程序:

#include

#include

#include

voidmain()

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

inti,j,k,h,b;

printf("得到的两位数是:

");

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

{

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->446->347->148->549->150->451->352->353->255->1

56->257->558->559->160->561->362->263->164->265->166->467->468->269->170->371->372->173->274->375->3

76->277->179->580->381->583->284->285->186->187->288->289->390->191->492->393->494->296->397->399->2

其结构体程序:

#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->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->446->347->148->549->150->451->352->353->255->1

56->257->558->559->160->561->362->263->164->265->166->467->468->269->170->371->372->173->274->375->3

76->277->179->580->381->583->284->285->186->187->288->289->390->191->492->393->494->296->397->399->2

题目二:

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

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;

}

}

}

}

voidmain()

{

intarr[10]={0};

inti=0;

intflag=0;

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个数进行排序:

13579246810

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

1

升序排序后:

12345678910

降序为:

请输入10个数进行排序:

13579246810

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

2

降序排序后:

10987654321

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

当前位置:首页 > 经管营销 > 经济市场

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

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