C语言程序设计实验第五次上机实验报告
6.第五次实验
C语言程序设计 实验报告
专业 计算机科学与技术 班级 信安1302班 日期 2014.5.10 成绩
实验组别 第 5 次实验 数组实验 指导教师 周时阳
学生姓名 熊雅媛 学号 U201315156 同组人姓名
实验名称 数组实验
6.1实验目的
1.掌握数组的说明、初始化和使用。
2.掌握一维数组作为函数参数时实参和形参的用法。
3.掌握字符串处理函数的设计,包括串操作函数及数字串与数之间转换函数的实现算法。
4.掌握基于分治策略的二分查找法和选择法排序算法的思想,以及相关算法的实现。
6.2实验内容
(一)设计一个实现多个功能(如,N个数求最大数和一元二次方程求根等等)的演示系统。
源程序如下:shangji5\chengxu25
#include
#include
#include"root.h"
#include"max.h"
#include"shuixianhaushu.h"
#include"wanquanshu.h"
int main()
{
int a,b,c;
int b1[100],n,i;
printf("input :");
scanf("%d%d%d",&a,&b,&c);
root(a,b,c);
printf("input n:");
scanf("%d",&n);
printf("input numbers:");
for(i=0;i
scanf("%d",&b1[i]);
max(b1,i);
return 0;
}void max(int a[],int n)/*计算n个数的最大值*/
{
int max, i;
max=a[0];
for(i=1;i
{
if(a[i]>max) max=a[i];
}
printf("max=%d\n",max);
}
void root(int a,int b,int c)/*求出一元二次方程的根,其中a,b,c为参数*/
{
int d;
d=b*b-4*a*c;
if(d<0)
{
printf("input error!");
}
else if(d==0)
{
printf("x1=x2=%.2lf\n",-(1.0*b)/(2.0*a));
}
else
{
printf("x1=%.2lf\n",((-1.0*b)+sqrt(d))/(2.0*a));
printf("x2=%.2lf\n",((-1.0*b)-sqrt(d))/(2.0*a));
}
}
int sxh(int x)/*判断一个数是否为水仙花数,是则输出1,不是则输出0*/
{
int s,r,x1;
x1=x;
s=0;
do
{
r=x%10;
s+=r*r*r;
}while((x/=10)!=0);
if(s==x1) return (1);
else return (0);
}
int wqs(int x)/*判断一个数是否为完全数,是则输出1 不是则输出0*/
{
int i,s;
s=0;
for(i=1;i<=x/2;i++)
{
if(!(x%i)) s+=i;
}
if(s==x) return (1);
else return (0);
}
实验步骤:
步骤一:分别定义几个子函数,分别可以用来计算n个数中的最大值,计算一元二次方程的根,判断一个数是否为水仙花数和完全数(也可以选用具有其他功能的子函数),放在不同的头文件中。
步骤二:在主函数中,用include处理自己定义的头文件,以方便主函数的调用。
调试及编译过程:
测试数据:输入a=1,b=-2,c=2求该方程的根,输入五个数求最大值
出现的不足及修改:无 实验结果:在主函数中用到了前两个子函数,输出正确的结果,用户可根据自己的需要调用其他的子函数。
(二)设计一个递归