C语言上机实习报告参考.pdf
文本预览下载声明
第一题: 该函数的功能是求出小于或等于lim 的所有
(1)题目要求:请编写一个函数void fun(int 素数并放在aa 数组中,
m ,int k,int xx[]), 该函数返回所求出的素数的个数。
该函数的功能是:将大于整数 m 且紧靠m (2 )分析:将lim 定义为整型常量,定义I
的k 个素数存入xx 所指的数组中。 为计数器,使最后得出的结果在每十个数范
例如,若输入:17,5,则应输出:19,23 , 围内进行换行,将素数个数存入sum 中,主
29 ,31,37 。 函数将lim 传入fun(),完成求素数个数,并
(2 )分析:在主函数中定义整型变量m,n , 将素数存入数组的过程,其中yes 的作用起
分别存储整数和素数的个数,定义一个一维 到条件判断的作用,很实用。
数组 zz[] ,存储结果,引用自定义函数fun() (3 )子函数和主函数代码:
将整数及个数和指针地址传给fun(),在fun() #include conio.h
中一次验证比整数大的素数n 个后结束,并 #include stdio.h
把结果存入数组中返回主函数,并在主函数 #define MAX 100
中一一读取,得到最终结果。 int fun(int lim, int aa[MAX])
(3 )子函数和主函数代码: { int /*yes,*/i,j,k=0;
#include conio.h for(i=2;i=lim;i++){
#include stdio.h /*yes=1;
void fun(int m, int k, int xx[]) for(j=2;j=i/2;j++)
{ int num=0,x=m+1,j; if(i%j==0){yes=0;break;}
while(numk){ if (yes) aa[k++]=i;*/
for(j=2;j=x/2;j++) /*第一种方法*/
if(x%j==0)break; /* 检验 x for(j=2;j=i/2;j++)
是否为素数*/ if(i%j==0) break;
if(jx/2)xx[num++]=x; /* 当 if(ji/2) aa[k++]=i;
将x/2 例行遍后仍没执行break ,将此 /*第二种方法*/
}
return k;
素数代入数组中,然后再访问下一个数*/ }
x++;} main()
} { int limit,i,
显示全部