定义函数打印闰年
#include <stdio.h>
int Find_leap(int n)
{
if((n % 4 == 0 && n % 100 != 0) || (n % 400 == 0)) \\润年的定义
return 1; \\润年的打印条件
else
return 0;
}
int main ()
{
int y = 0;
for(y = 1000; y <= 2000;y++)
{
if (Find_leap(y) == 1)
{
printf("%d \n",y);
}
}
return 0;
}
注意在定义函数时,void写或者不写是两种概念:
当写void时,函数不返回也不需要返回;当不写void时,默认返回0
二分查找:
#include <stdio.h>
int binary_search(int a[],int k,int s)
{
int left = 0; //取下标为0
int right = s - 1;
while (left <= right)
{
int mid = (left + right)/2;
if (a[mid] > k)
{
right = mid - 1;
}
else if (a[mid] < k)
{
left = mid + 1;
}
else
{
return mid;
}
}
return -1 ; //该数字不存在
}
int main ()
{
int arr[] = {1,2,3,4,5,6,7,8,9,10};
int key = 5;
int a = sizeof(arr)/sizeof(arr[0]);//求数组大小
int A = binary_search(arr,key,a);
if (A == -1)
{
printf("找不到");
}
else
{
printf("该数字下标为:%d",A);
}
return 0;
}
该段代码须知:
1. 计算数组大小可利用
sizeof(arr) /sizeof(arr[0])
所有字节(40字节(10个整形)) / 单个字节大小 = 可得十个元素,即长度为10
2. 第一个int a[]传的是地址,不写括号内容
因此求元素个数需要在外部先求好,再传入函数内部
函数的定义以及链式访问:将函数的返回值作为另一个函数的参数
注意:函数的定义中不能嵌套定义函数
举个简单的例子:
#include <stdio.h>
#include <string.h>
int main()
{
int len = strlen("asdfg");
printf ("%d\n",len);
printf("%d",strlen("asdfg"));
return 0 ;
}
来个花里胡哨的:
#include <stdio.h>
int main()
{
printf("%d",printf("%d",printf("%d",43)));
return 0;
}
该段代码结果为:
原因涉及到 printf函数范围值的问题: 即返回打印在屏幕上的字符个数
此处首先打印43,两个个数,返回2;则倒数第二个打印2,一个数字,返回1;第一个打印1
内容不多,但用心写了,有问题请指正!