定义一个一维数组,输入数组的值,引用第一个函数,求得最大值和最小值的下标 通过下标输出最大值和最小值。
3) 调试过程的记载(包括出现的错误,以及修改?)
开始时求最大值和最小值的下标时出现错误。 4) 归纳本题应用的知识点或算法 函数的定义与调用
函数需要返回多个值的做法 数组的相关知识 循环语句
6)编写一个递归函数,统计任意位正整数的位数,并在主函数中输入这个整数和输出统计的结果。 要求:
1) 程序原代码。(直接粘贴在此)
#include
if (a>=0&&a<10) return 1; else return 1+ws(a/10); }
int main() {
int a;
cout<<\请输入一个整数\ cin>>a;
cout<<\该整数的位数为\return 0; }
2) 解决本题的算法思路描述
定义ws函数,通过整除10来求得整数的位数 Main函数中调用ws函数求得位数 输出位数
3) 调试过程的记载(包括出现的错误,以及修改?)
未出现错误
4) 归纳本题应用的知识点或算法 计算整数位数的方法 循环语句
函数的定义与调用
7)编写程序要求能对10个字符串排序,然后用折半查找的方法查询需查找的字符串。要求①排序、②查找和③两字符串的交换分别用自定义函数实现。要求:是否找到的信息只能在主函数中输出显示。
要求:
1) 程序原代码。(直接粘贴在此)
#include
void swap(char a[],char b[]); void paixu(char a[][50]);
int search(char a[][50],char searchname[]); int main() {
int i;
char searchname[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<<\该字符串存在\ return 0; }
void swap(char a[],char b[]) {
char c[50]; strcpy(c,a); strcpy(a,b); strcpy(b,c); }
void paixu(char a[][50]) {
int min,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]); } } }
int search(char a[][50],char searchname[]) {
paixu(a);
int low=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; return m;
}
2) 解决本题的算法思路描述 编写排序的函数 编写交换的函数 编写查找的函数 主函数
3) 调试过程的记载(包括出现的错误,以及修改?)
4) 归纳本题应用的知识点或算法 函数的定义与调用 折半查找 排序
对字符数组的处理
三、对本次实验内容及方法、手段的改进建议,以及实验心得实验心得包括:1)哪些知识点已掌握
基本掌握字符型数组的使用 循环语句的使用 指针传递
函数的声明和调用 排序算法
递归算法
2)哪些知识点有困难 折半查找不熟练 3)对讲课的建议 多进行算法的举例
4)对没有掌握知识的补救建议 多加练习关于折半查找方面的问题 对常用算法进行总结