知识点:
指针与数组
一维数组与元素地址的表示:int a[3]={1,2,3}; 数组地址:a
用指针变量引用数组元素
定义指针变量:int *p,a[3]={1,2,3};
p=a;
引用数组元素:
下标法 地址法 指针法
第N个元素 a[k] *(a+k) *(p+k)
第N个元素的地址 &a[k] a+k p+k
PS:用指针变量访问素组元素要注意下表是否越界。
冒泡法:将数字从大到小排序或者从小到大排序的一种方法。相邻的两个数两两互换,从第一个数开始,如果是按照要求的顺序排列,就不用交换。n个数就要n-1个数开始。
在数组中查找指定数
#include<Stdio.h> int main() { int n,list[10],num,x,i,item; int search(int list[],int n,int x); printf("Input n:"); scanf("%d",&n); printf("Input list[%d]:",n); for(i=0;i<n;i++) scanf("%d",&list[i]); printf("search:"); scanf("%d",&x); num=search(list,n,x); if(num!=-1) printf("%d",num); else if(num==-1) printf("Not find!"); return 0; } int search(int list[],int n,int x) { int i,num; for(i=0;i<n;i++){ if(x==list[i]) return i; } if(x!=list[i]) return -1; }
冒泡法
#include<Stdio.h> int main() { int i,n,a[10]; void sort(int a[],int n); printf("Input n(n<10):"); scanf("%d",&n); printf("Input a[%d]:",n); for(i=0;i<n;i++) scanf("%d",&a[i]); sort(a,n); for(i=0;i<n;i++) printf("%3d",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-1;j++) if(a[j]>a[i]){ t=a[j]; a[j]=a[i]; a[i]=t; } }