一、用函数打印100-200之间的素数
#include<stdio.h>
int is_prime(int i)
{
int n=0;
for(n=2;n<i;n++)
{
if(n%i==0)
return 0;
}
return 1;
}
int main()
{
int i=0;
for(i=100;i<=200;i++)
{
if(is_prime(i)==1);
printf("%d ",i);
}
}
二、用函数打印1000-2000之间的闰年
#include<stdio.h>
int is_leap_year(int n)
{
if(n%4==0&&n&100!=0||n%400==0)
{
return 1;
}
return 0;
}
int main()
{
int year=0;
int count=0;
for(year=1000;year<=200;year++)
{
count++;
if(is_leap_year(year)==1)
{
printf("%d ",year);
}
}
}
三、写一个函数,实现有序数组的二分查找
#include<stdio.h>
int binary_search(int arr[], int k,int sz)
{
//算法的实现
int left = 0;
int right = sz - 1;
while (left <= right)
{
int mid = (left + right) / 2;//中间元素的下标
if (arr[mid] < k)
{
left = mid + 1;
}
else if(arr[mid] > k)
{
right = mid - 1;
}
else
{
return mid;
}
}
return -1;
}
int main()
{
//二分查找:在一个有序数组中查找具体的某个数
//如果找到了返回这个数的下标,找不到的返回-1
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int k = 11;
int sz = sizeof(arr) / sizeof(arr[0]);
int ret=binary_search(arr, k,sz);
if (ret == -1)
{
printf("找不到指定的数字\n");
}
else
{
printf("找到了,下标是:%d \n", ret);
}
}