函数调用及其链式访问

定义函数打印闰年
 

#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

内容不多,但用心写了,有问题请指正!

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值