最近感冒了,状态不好头晕。还也许是没有了一开始的劲头。学习的时间越来越少了,敲的代码也变少了。希望感冒好后,能恢复以前的学习时长。
//函数的使用
/*
#include<stdio.h>
#include<string.h>
int main()
{
char arr1[] = "bit";
char arr2[] = "##############";
strcpy(arr2,arr1);
printf("%s",arr2);
return 0;
}
*/
/*
#include<stdio.h>
#include<string.h>
int main()
{
char arr[] = "hello bit";
memset(arr,'*',5);
printf("%s\n",arr);
return 0;
}
*/
//自己创建一个函数并使用。
//找出两个数之间的较大值。
/*
#include<stdio.h>
int max(int x,int y)//int 是返回类型为整形。void代表没有返回值;
{
if(x>y)
printf("max: %d",x);//这样写可能不好,return x; 较好
else
printf("max: %d",y);//这样写可能不好,return y; 较好
}
int main()
{
int a = 0;
int b = 0;
scanf("%d%d",&a,&b);
max(a,b);//如果上面改的话这要改成 int max = max(a,b);
return 0;
}
*/
/*
#include<stdio.h>
void swap1(int* x,int* y)
{
int tem = 0;
tem = *x;
*x = *y;
*y = tem;
}
int main()
{
int a = 5;
int b = 3;
printf("a=%d b=%d\n",a,b);
swap1(&a,&b);
printf("a=%d b=%d\n",a,b);
return 0;
}
*/
//函数实现二分查找法
#include<stdio.h>
// 本质上这里的arr是个指针
int binary_search(int arr[],int k,int sz)
{
int left = 0;
int right = sz - 1;
while(left<=right)
{
int i = (left+right)/2;
if(arr[i]>k)//if(arr[i]>=k)
{
right = i-1;
}
else if(arr[i]<k)
{
left = i+1;
}
else
{
return i;
}
}
return -1;
}
int main()
{
int arr[] = {1,2,3,4,5,6,7,8,9,10};
int sz = sizeof(arr)/sizeof(arr[0]);
int k = 7;
// 这里传递过去的是数组首元素的地址
int ret = binary_search(arr,k,sz);
if(ret == -1)
{
printf("找不到指定的数字\n");
}
else
{
printf("找到了,下标是:%d",ret);
}
return 0;
}