电1C语言实验报告(4)
《计算方法与程序设计实验》
{k=8-i-j;
/*************found**************/ if(k>=1&&k<=6) { sum=sum+1;
printf(\ }
printf(\
Key:第一个错误:for(i=0;i<=3;i++) 应改为:for(i=1;i<=3;i++) 因必须要有红球和白球。
第二个错误:if(k>=1&&k<=6) 应改为:if(k>=0&&k<=6) 因可以没有黑球 sum= 15 4.一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。试求[100,999]之内的所有逆向超级素数的个数。
#include \main()
{int i,j,k,m,p,q,n=0; for(i=100;i<=999;i++) {for(j=2;j
if(j>=i) /*三位数是素数时*/ {k=i0; /*去掉百位数字*/ if(k>=10) /*十位数字不是0时*/ {for(m=2;m if(m>=k) /*两位数是素数时*/ {p=i; /*p为个位数字*/ if(p>1) {for(q=2;q if(q>=p)n++,printf(\printf(\ Key:39 5.求[2,400]中相差为10的相邻素数对的对数。 #include \main() {int i,j,k,m,p,q,n=0; for(i=2;i<=400;i++) {for(j=2;j 11 《计算方法与程序设计实验》 if(j>=i) /*i是素数时*/ {for(k=i+1;k if(k%m==0)break;/*k不是素数时终止if语句的内层循环*/ if(m>=k)break;} /*k是素数时终止if语句的外层循环*/ if(k>=i+10) /*[i+1,i+9]不是素数时*/ {for(q=2;q if(k%q==0)break; if(q>=k) /*i+10是素数时*/ n++;}}} printf(\Key:5 6.求[1,21]范围内的梅森尼数 #include \ main() {long n,k=2,m,p,q; for(n=2;n<=21;n++) { k=k*2; p=k-1; m=sqrt(p); for(q=2;q<=m;q++) if(p%q==0) break; if(q>m) printf(\ Key: 2 3 5 7 13 17 19 7.求1000以内的亲密数对 main() {int a,b,n,m,q,p; for(a=1;a<1000;a++) {n=0; for(q=1;q<=a/2;q++) if(a%q==0) n+=q; for(b=a;b<=1000;b++) { m=0; for(p=1;p<=b/2;p++) if(b%p==0) m+=p; if(a==m&&b==n) printf(\学生练习: 1. 计算Y=X/1!-X^3/3!+X^5/5!-X^7/7!+……前20项的值(已知:X=2)。精确到小数点后第二位。 2. 若一个自然数恰好是它的平方的末后几位数,则称此数为自同构数(或守形数)。如5和76都是自同构数,因为它们的平方分别是25和5776。求[100,99999]内所有自同构数之和。(提示:若 12 《计算方法与程序设计实验》 x是m位同构数,则x的平方除以10的m次方的余数就是x) 教学方法 【实验总结】通过做这个实验,我学会使用穷举算法(百钱百鸡问题)和迭代算法(二分法求方程的根);综合使用三种基本结构解决逆向超级素数和相邻素数问题,提高了编程的能力。 实验名称:实验6 数组及其应用 实验时间:第11周周三 实验地点:5423 【实验目的】掌握一维数组和二维数组的定义、初始化、赋值和输入输出操作;掌握与数组有关 的算法,如排序和查找等。 【实验内容】 1.分析下列程序的功能,写出运行结果。 #include \#define N 10 main() { int i,j,temp, a[N+1]; int count=0; /* 计数器,记录是第几趟排序*/ printf(\for (i=1;i<=N;i++) scanf(\printf(\for(i=1;i<=N;i++) { count++; /*每排序一趟,计数器加1*/ for(j=1;j<=N-i;j++) if(a[j]>a[j+1]) /*若第一个数大于第二个数则交换*/ { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } printf(\打印是第几趟排序*/ for(j=1;j<=N;j++) printf(\打印本趟排序的结果*/ printf(\} printf(\ for(i=1;i<=N;i++) printf(\打印排序的最终结果*/ printf(\ Key:冒泡法排序,并输出每趟排序的结果 2.以下程序的功能是用筛选法求1~100之间的所有素数,请分析并写出运行结果。 #include \#define SIZE 100 main() { int sieve[SIZE+1],prime[SIZE]; /*定义两个数组*/ int i,j,count=0; sieve[0]=1; /*将1筛除*/ for(i=1;i for(i=j;i<=SIZE;i=i+j) sieve[i-1]=1; count++; } 13 《计算方法与程序设计实验》 for(i=1;i<=count;i++) {printf(\ if(i==0)printf(\ /*每13个一行输出素数*/ Key: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 分析:先设全为素数,若sieve[i-1]为0,则i是素数,i的2倍…为非素数,sieve[2*i-1]=1。 3.由N个有序整数组成的数列已放在一维数组中,下列给定程序中函数fun的功能是:利用折半查找法查找整数m在数组中的位置。若找到,返回其下标值;否则,返回-1。 折半查找的基本算法是:每次查找前先确定数组中待查的范围low和high(low #include { int i,a[N]={-3,4,7,9,13,45,67,89,100,180 },k=-1,m; int low=0,high=N-1,mid; printf(\数组中的数据如下:\ for(i=0;i /************found************/ else {k=mid;continue;} } if(k>=0) printf(\ else printf(\ Key:第一个错误:else If(m > a[mid]) 应改为:else if(m > a[mid]) 因C语言关键字必须小写。 第二个错误:else {k=mid;continue;} 应改为:else {k=mid;break;} 因找到就可终止循环。 4.有一个3*4矩阵,找出
…… 此处隐藏:1430字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [学前教育]MC9S12XS256RMV1 xs128芯片手册4
- [学前教育]安东尼语录经典语录
- [学前教育]e级gps控制测量技术设计书
- [学前教育]苏教版2022-2022学年八年级下学期期末
- [学前教育]装修公司推广 营销
- [学前教育]家政服务合同(完整版)
- [学前教育]湖北省2016届高三联考语文试题
- [学前教育]爱立信无涯学习系统LTE题库1-LTE基础知
- [学前教育]揭秘大众柴油车作弊软件原理
- [学前教育]人才流失原因及对策分析
- [学前教育]房屋建筑施工工程劳务分包合同
- [学前教育]国际贸易实务试卷A卷09.6
- [学前教育]校园废品回收活动计划方案书范文格
- [学前教育]电大成本会计试题及答案
- [学前教育]大学物理实验 华南理工出版社 绪论答案
- [学前教育]爱丁堡产后抑郁量表
- [学前教育]液压冲击的危害、产生原因与防止方法(
- [学前教育]学生工作总结高一学生期中考试总结_020
- [学前教育]人民医院医疗废物管理规章制度大全
- [学前教育]阳光维生素的巨大抗癌潜能阅读题答案.d
- 马云在云锋基金江苏论坛闭幕式的发言
- 试论小学体育教育中的心理健康教育-教
- 语文A版一年级下册《语文乐园一》教学
- 2021四川大学物理化学考研真题经验参考
- [人教A版]2015-2016学年高中数学 第二
- 终端网点销售返利协议书
- 江苏省2015年眼科学主治医师青光眼考试
- 2017年部编人教版八年级语文上册教案
- 十一中学七年级英语上册Unit7Howmuchar
- 以赛促教的创新性实验教学机制建设实践
- 平凉市崆峒区2015七年级下生物期末试题
- 琶洲(地块五)A、B塔楼1、2#塔吊基础
- 一级医院工作制度与人员岗位职责
- 2018北京西城区高三二模理科数学试题及
- 炒股密码线技术 - 图文
- 职高学生生涯发展辅导教案
- 语文人教版四年级上册8 世界地图引出的
- 最新最新人教版二年级上册全册数学教案
- 2017高考英语全国2卷精彩试题(有问题
- 普通心理学笔记




