- 用函数实现有序数列的二分查找
int dic(int arr[],int k,int sz)
{
int left=0;
int right=sz-1;
int mid=0;
while(left<=right)
{
mid=(left+right)/2;
if(arr[mid]<k)
{
left=mid+1;
}
if(arr[mid]>k)
{
right=mid-1;
}
if(arr[mid]==k)
{
return mid;
}
}
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=0;
printf("请输入要查找的数:");
scanf("%d",&k);
int ret=dic(arr,k,sz);
if(ret==-1)
{
printf("找不到\n");
}
else
{
printf("找到了,下标为:%d\n",ret);
}
return 0;
}
- 用函数实现两个整数的交换
void exc(int *pa,int *pb)
{
int tmp=*pa;
*pa=*pb;
*pb=tmp;
}
int main()
{
int a,b=0;
printf("请输入两个数:");
scanf("%d%d",&a,&b);
printf("交换前 a=%d b=%d\n",a,b);
exc(&a,&b);
printf("交换后 a=%d b=%d\n",a,b);
return 0;
}
- 用函数打印100-200的素数
int prime(int i)
{
for(int a=2;a<i;a++)
{
if(i%a==0)
{
return 0;
}
}
return 1;
}
int main()
{
int i=0;
int count=0;
for(i=100;i<=200;i++)
{
int ret=prime(i);
if(ret==1)
{
printf("%d ",i);
count++;
}
}
printf("\ncount=%d\n",count);
return 0;
}
- 用函数打印1000-2000年里的闰年
int leap(int year)
{
return ((year%4==0)&&(year%100!=0)||(year%400==0));
}
int main()
{
int year=0;
int count=0;
for(year=1000;year<=2000;year++)
{
int ret=leap(year);
if(ret==1)
{
printf("%d ",year);
count++;
}
}
printf("\ncount=%d\n",count);
return 0;
}