1.1编译链接和内存布局
代码:
#include<stdio.h>
#include<string.h>
#include<assert.h>
#include<stdlib.h>//system
#include<time.h>
#include<windows.h>
void _print(const int* br,int n)
{
if(n>0)
{
printf("%d",br[n-1]);
_print(br,n-1);
printf("\n");
}
}
void print(const int* br,int n)
{
if(br==NULL||n<1)return;
_print(br,n);
printf("\n");
}
int main()
{
int ar[]={11,22,33};
int n=sizeof(ar)/sizeof(ar[0]);//元素个数
print(ar,n);
return 0;
}
结果:
33
22
11
2.二分查询
#include<stdio.h>
#include<string.h>
#include<assert.h>
#include<stdlib.h>//system
#include<time.h>
#include<windows.h>
int bianryfindvalue(const int* br,int n,int val)
{
if(br==NULL||n<1)
return -1;
int pos=-1;
int left=0,right=n-1;
while(left<=right)
{
int mid=(left+right)/2;
if(val<br[mid])
{
right=mid-1;
}
else if(val>br[mid])
{
left=mid+1;
}
else{
pos=mid;
break;
}
}
return pos;
}
int main()
{
int ar[]={11,22,33,44,55,66};
int n=sizeof(ar)/sizeof(ar[0]);//元素个数
int val=0;
int pos=-1;
scanf("%d",&val);
pos=bianryfindvalue(ar,n,val);
printf("%d\n",pos);
return 0;
}
3.斐波那契数列
4.汉诺塔