知识点:
1.指针,数组和地址间的关系。
1)指针与数组:指针是以地址为的变量,而数组名的值是一个特殊的固定地址可以把它看做是常量指针。
p=a; 等价于p=&a[0];
p=a+1; 等价于p=&a[1];
注:p=a+1是合法的,但a=a+1是非法的。
如果i是int型变量,那么p+i就是距地址p的第i个偏移,类似的,a+i是距数组a的基地址的第i个偏移,*(a+i)与啊【i】等价。
数组名可以使用指针形式,而指针变量也可以转换为数组形式。
2.数组名作为函数的参数。
3)冒泡排列算法分析
进行从小打到大排序时,小的数经过交换会慢慢从底下“冒”上来。
1.冒泡法进行排序。要求自定义一个函数实现用冒泡法对整数数组进行简单排序。
#include<stdio.h> void sort(int a[],int n); int main() { int n,a[8]; int i; printf("Enter n(n<=8):"); scanf("%d",&n); printf("Enter a[%d]:",n); for(i=0;i<n;i++) scanf("%d",&a[i]); sort(a,n); printf("After sorted,a[%d]=",n); for(i=0;i<n;i++) printf("%2d",a[i]); return 0; } void sort(int a[],int n) { int i,j,t; for(i=1;i<n;i++) for(j=0;j<n-i;j++) if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } }
2.在数组中查找指定元素:要求自定义一个函数
#include<stdio.h> int search(int list[],int n,int x); int main() { int n,x,list[10]; int i; printf("输入n:"); scanf("%d",&n); printf("输入 %d integers:",n); for(i=0;i<n;i++) scanf("%d",&list[i]); printf("请输入x:"); scanf("%d",&x); search(list,n,x); if(search(list,n,x)!=-1) printf("mid=%d ",search(list,n,x)); else printf("-1 "); return 0; } int search(int list[],int n,int x) { int i; for(i=0;i<n;i++) { if(x==list[i]) return i; else return -1; } }
二实验遇到的问题:题目中当中的知识点还不怎么清楚,经过看书和同学的讲解,才了解到当中的问题。
三实验心得:题目难度逐渐加大,需要我们复习,复习,在复习。题目内容也渐渐地加强,需要我们灵活的应用的知识点及方法,加强练习。