1、 if(k%m=0)break; if(m=k) /*两位数是素数时*/ p=i%10; /*p为个位数字*/for(q=2;q=p)n+;printf(%dn,n);Key:575求2,400中相差为10的相邻素数对的对数。for(i=2;=400;=i) /*i是素数时*/ for(k=i+1;ki+10;k+) /*k不是素数时终止if语句的内层循环*/=k)break; /*k是素数时终止if语句的外层循环*/=i+10) /*i+1,i+9不是素数时*/ for(q=2; if(k%q=0)break;=k) /*i+10是素数时*/n+;56.求1,21范围内的梅森尼数 #incl
2、ude math.h main() long n,k=2,m,p,q; for(n=2;nm) printf(%5ld 2 3 5 7 13 17 197.求1000以内的亲密数对 main() int a,b,n,m,q,p; for(a=1;a1000;a+) n=0; for(q=1;=a/2; 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(%5d%5d,a,b);/*Key:6 6 28 28 220 284 496 496*/实验6 数组及其应用
3、3由N个有序整数组成的数列已放在一维数组中,下列给定程序中函数fun的功能是:利用折半查找法查找整数m在数组中的位置。若找到,返回其下标值;否则,返回1。折半查找的基本算法是:每次查找前先确定数组中待查的范围low和high(lowhigh,查找结束。请改正程序中的错误,使它能得出正确的结果。#include #define N 10 int i,aN=-3,4,7,9,13,45,67,89,100,180 ,k=-1,m; int low=0,high=N-1,mid; printf(a数组中的数据如下:); for(i=0;N;i+) printf(%d , ai);Enter m: s
4、canf(%d,&m); while(low=high) mid=(low+high)/2; if(m amid) low=mid+1; else k=mid;continue; =0) printf(m=%d,index=%dn,m,k); else printf(Not be found!n第一个错误:else If(m amid) 应改为:else if(m amid) 因C语言关键字必须小写。 第二个错误:else k=mid; 应改为:break; 因找到就可终止循环。4有一个3*4矩阵,找出每行中最大的元素并与第1列元素交换。具体要求如下:(1)使用二维数组存放该3*4矩阵。(2)
5、定义并初始化该二维数组。(3)输出原矩阵和处理后的矩阵进行比较。【程序源代码】 int i,j,k,temp; int data34=12,15,7,11,14,6,10,21,25,7,16,45;the original matrix:=2; for(j=0;=3;%dt,dataij); /*打印原矩阵*/ k=0; for(j=1; if(dataijdataik) k=j; temp=datai0; datai0=dataik; dataik=temp; /*求每行最大数并与第1列上的元素交换*/nthe handled matrix: for(j=0; /*打印处理后矩阵,此时第1
6、列上的元素为每行的最大数*/5猴子选大王问题:n个人围坐一圈,并顺序编号1n,从1号开始数,每数到m个就让其出局,重复.。求最后出局者的编号。当n=50,m=3时 ,答案为11(1)使用一维数组存放每个人的编号,每数到m个数就让其出局,出局者编号为0。(2)使用for循环嵌套实现。int a51,i,j,m=0,n; for(i=1;=50;i+)ai=i;/*为了符合习惯,数组下标从1开始,下标就是编号*/=50/3;j+) /*外层循环最多循环50/3次*/ if(ai!=0)m+; /*对未出局者计数*/if(m=3)ai=0,n=i,m=0;/*对出局者编号为0,并保存原编号,计数从0
7、开始*/last: %dn /*最后出局者的编号*/实验7函数及其应用3排错题:下列给定程序中函数fun 的功能是:用递归算法求形参a 的平方根。请改正程序中的错误,使它能计算出正确的结果。注意:源程序不得增行或删行,也不得更改程序的结构!例如,a 为2 时,平方根值为:1.414214。math.h/*found*/void fun(double a, double x0) double x1, y;x1=(x0+a/x0)/2.0;if( fabs(x1-x0)=0.00001 ) 因只有 fabs(x1-x0)=0.00001才须递归。4设计一个程序,判断一个整数n 是否是素数。(1)编
8、制一个函数int prime(number),判断整数number 是否是素数。(2)编制主函数,由键盘输入整数number,调用(1)中的函数,若返回值为真则是素数,否则不是素数。(3)分别用以下数据运行该程序:103,117。 int number;请输入一个正整数:scanf( %dnumber);if (prime(number)n %d是素数. ,number);elsen %d不是素数. int prime(number)int number;int flag=1,n;for(n=2;number/2&flag=1;if (number%n=0)flag=0;return(flag);5编写程序,通过两个自定义函数分别求两个正数的最大公约数和最小公倍数,用主函数调用这两个函数并输出结果。两个正数由键盘输入。(1)用辗转相除法实现。(2)输出要有文字说明,输出形式为:最大公约数具体值,最小公倍数具体值 8 和26, 64 和258(4) 辗转相除法:对于两个数m 和n,将大数放在m 中,小数放在n 中,用n 去除m,若余数为0,则n 为最大公约数,否则将n 作为m,余数作为n,再用n 去除m,直到余数为0,则n 为最大公约数。#includ
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1