高级语言程序设计(C语言)实验报告
高级语言程序设计(C语言)实验报告
实验名称判断十个数哪个为素数实验时间2012/11/30专业班级学 院姓 名学 号
实验目的:
熟练掌握if,if-else语句,利用if语句实现分支选择结构;
熟练掌握for语句格式及使用方法;
掌握C函数的定义方法,函数的调用方法,参数说明以及返回值;
掌握一维数组的定义、引用及应用;
实验内容:
编写一个primeNun(int x)函数,判断十个数中哪个是素数。
要求:
定义一个十个元素的一位数组,数组由键盘输入;
函数类型为空值(void),调用primeNun(int x)函数后,在函数中输出十个数中的素数;
运行程序,检查是否正确。
算法描述(可用流程图)
Step1:输入10个整数;
Step2:引用函数primeNum(int x),依此判断十个数是否为素数;
Step3:输出十个数中的素数。
源程序(要求注释)
#include
#include
int primeNum(int n) /*判断输入数字是否是素数的函数*/
{
int i,k,m;
m=0;
if (n!=0) /*排除数字0*/
k=(int)sqrt(n)+1;
for (i=2;i<=k;i++)
if (n%i==0)
m=m+1;
if(m==0)
return 1; /*如果是素数返回1*/
else
return 0; /*若不是素数返回0*/
}
main ()
{
int a[10],i; /*定义一个十个元素的一维数组*/
printf("please input 10 numbers:");
for (i=0;i<10;i++)
{
scanf("%d",&a[i]);
} /*输入十个数*/
printf("The prime number:\n");
for (i=0;i<10;i++)
{
if (1==primeNum(a[i])) /*调用primeNum(int x)函数,判断是否为素数*/
printf ("%d\n",a[i]); /*输出是素数的数*/
}
}
测试数据
第一组:1 2 3 4 5 6 7 8 99 0;
第二组:3 4 5 6 7 8 9 0 3 2;
第三组:23 21 34 56 78 90 3 2 1 0
运行结果
第一组:1 3 5 7;
第二组:3 5 7 3;
第三组:23 3 1;
调试过程出现的问题及解决方法
首先是语法、符号的错误,比如%打成了/;break是终止整个程序的操作;
int i,k,m;
m=0;
if (n==0)
return 0;
else
k=(int)sqrt(n)+1;
for (i=2;i<=k;i++)
这是原来编写的函数部分,忽略了n=0的情况,所以加了一个判断语句;
③、for (i=0;i<10;i++)
{
scanf("%d",&a[i]);
} /*输入十个数*/
printf("The prime number:\n");
for (i=0;i<10;i++)
{
if (1==primeNum(a[i]))
用了一个for语句也可以运行出来:
main ()
{
int a[10],i;