return0;
}
2)解决本题的算法思路描述
定义ws函数,通过整除10来求得整数的位数
Main函数中调用ws函数求得位数
输出位数
3)调试过程的记载(包括出现的错误,以及修改?
)
未出现错误
4)归纳本题应用的知识点或算法
计算整数位数的方法
循环语句
函数的定义与调用
7)编写程序要求能对10个字符串排序,然后用折半查找的方法查询需查找的字符串。
要求①排序、②查找和③两字符串的交换分别用自定义函数实现。
要求:
是否找到的信息只能在主函数中输出显示。
要求:
1)程序原代码。
(直接粘贴在此)
#include
#include
usingnamespacestd;
voidswap(chara[],charb[]);
voidpaixu(chara[][50]);
intsearch(chara[][50],charsearchname[]);
intmain()
{
inti;
charsearchname[50],aa[10][50];
cout<<"请输入十个字符串"<for(i=0;i<10;i++)
{
cin>>aa[i];
}
cout<<"请输入要查找的字符串名称"<cin>>searchname;
if((search(aa,searchname)==0))
cout<<"未查找到该字符串"<else
cout<<"该字符串存在"<return0;
}
voidswap(chara[],charb[])
{
charc[50];
strcpy(c,a);
strcpy(a,b);
strcpy(b,c);
}
voidpaixu(chara[][50])
{
intmin,i,j;
for(i=0;i<10;i++)
{
min=i;
for(j=i;j<10;j++)
{
if(strcmp(a[min],a[j])>0)
swap(a[min],a[j]);
}
}
}
intsearch(chara[][50],charsearchname[])
{
paixu(a);
intlow=0,high=9,mid,m;
mid=(low+high)/2;
while(low<=high&&strcmp(a[mid],searchname)!
=0)
{
if(strcmp(a[mid],searchname)<0)
low=mid+1;
else
high=mid-1;
mid=(low+high)/2;
}
if(strcmp(a[mid],searchname)==0)
m=mid+1;
else
m=0;
returnm;
}
2)解决本题的算法思路描述
编写排序的函数
编写交换的函数
编写查找的函数
主函数
3)调试过程的记载(包括出现的错误,以及修改?
)
4)归纳本题应用的知识点或算法
函数的定义与调用
折半查找
排序
对字符数组的处理
三、对本次实验内容及方法、手段的改进建议,以及实验心得
实验心得包括:
1)哪些知识点已掌握
基本掌握字符型数组的使用
循环语句的使用
指针传递
函数的声明和调用
排序算法
递归算法
2)哪些知识点有困难
折半查找不熟练
3)对讲课的建议
多进行算法的举例
4)对没有掌握知识的补救建议
多加练习关于折半查找方面的问题
对常用算法进行总结