函数调用,二分查找
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//is_leap_year
//如果是闰年,返回1
//如果不是闰年,返回0
//int is_leap_year(int x)
//{
// if((x%4==0) && (x%100!=0) || (x%400==0))
// return 1;
// else
// return 0;
//}
//int is_leap_year(int x)
//{
// if((x%4==0 && x%100!=0) || (x%400==0))
// return 1;
// else
// return 0;
//}
//int is_leap_year(int x)
//{
// if (x % 4 == 0)
// return 1;
// if(x%100==0 && x%400!=0)
// return 0;
//}
//一个函数如果不写返回类型,默认返回int类型
//int is_leap_year(int x)
//{
// if (x % 4 == 0 && x % 400 != 0)
// return 1;
// else if (x % 400 == 0)
// return 1;
// else
// return 0;
//}
错误写法1600能被400整除是闰年但没有输出是因为整除4进了if就不会进else if
//int is_leap_year(int x)
//{
// if (x % 4 == 0)
// {
// if (x % 100 != 0)
// return 1;
// else
// return 0;
//
// }
// else if (x % 400 == 0)
// return 1;
// else
// return 0;
//}
最简洁
//int is_leap_year(int x)
//{
// return ((x % 4 == 0 && x % 100 != 0) || (x % 400 == 0));
//
//}
//int main()
//{
// int y = 0;
// for (y = 1000; y <= 2000; y++)
// {
// if (is_leap_year(y) == 1)
// printf("%d ", y);
// }
// return 0;
//}
//写一个函数,实现一个整形有序数组的二分查找
//int binary_search(int arr[],int key,int sz)
//{
// int left = 0;
// int right = sz - 1;
// int mid = (left + right) / 2;
// while (left<=right)
// {
// if (arr[mid] > key)
// {
// right = mid - 1;
// }
// else if (arr[mid] < key)
// {
// left = mid + 1;
// }
// else
// {
// return mid;
// }
// }
// return -1;//找不到的情况
//}
//
//int main()
//{
// int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
// int key =7;
// int sz = sizeof(arr) / sizeof(arr[0]);
// //找到了就返回找到的位置的下标
// //找不到返回-1
//
// int ret=binary_search(arr,key,sz);
// if (-1 == ret)
// {
// printf("找不到\n");
// }
// else
// {
// printf("找到了,下标是: %d\n",ret);
// }
// return 0;
//}
错误写法
//int binary_search(int* arr,int key)
int binary_search(int arr[], int key, int sz)
//{
// int sz = sizeof(arr) / sizeof(arr[0]);
// int left = 0;
// int right = sz - 1;
// //int mid = (left + right) / 2;
// while (left <= right)
// {
// int mid = (left + right) / 2;
// if (arr[mid] > key)
// {
// right = mid - 1;
// }
// else if (arr[mid] < key)
// {
// left = mid + 1;
// }
// else
// {
// return mid;
// }
// }
// return -1;//找不到的情况
//}
//
//int main()
//{
// int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
// int key = 7;
// //int sz = sizeof(arr) / sizeof(arr[0]);
// //找到了就返回找到的位置的下标
// //找不到返回-1
// //数组arr传参,实际传递的不是数组本身
// //仅仅传过去了数组首元素的地址
// int ret = binary_search(arr, key, sz);
// if (-1 == ret)
// {
// printf("找不到\n");
// }
// else
// {
// printf("找到了,下标是: %d\n", ret);
// }
// return 0;
//}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律