1.设计函数二分查找
begin
end
mid
return mid // 返回找到的元素的下标
return -1 //没找到 返回 -1
#include <stdio.h>
// 二分查找函数
int binary_search(int arr[], int n, int target) {
int low = 0, high = n - 1;
while (low <= high) {
int mid = low + (high - low) / 2; // 防止整数溢出
if (arr[mid] == target) {
return mid; // 找到目标,返回其下标
}
if (arr[mid] < target) {
low = mid + 1; // 在右半部分继续查找
} else {
high = mid - 1; // 在左半部分继续查找
}
}
return -1; // 没有找到目标,返回-1
}
int main() {
int arr[] = {2, 3, 4, 10, 40};
int n = sizeof(arr) / sizeof(arr[0]);
int target = 10;
int result = binary_search(arr, n, target);
(result == -1) ? printf("Element not present in array\n")
: printf("Element found at index %d\n", result);
return 0;
}
2、从键盘输入若干整数,其值在0至4的范围内,
用-1作为输入结束的标志,统计整数的个数。
设计函数实现。
#include <stdio.h>
int cnt_Zero_To_Four(void) {
int n;
int cnt = 0;
while(scanf("%d", &n) != EOF && n >= 0 && n <= 4) {
if(n >= 0) {
cnt++;
}
}
return cnt;
}
int main(void) {
printf("Zero_to_four num_cnt=%d\n", cnt_Zero_To_Four());
return 0;
}
3. 封装一个函数,判断一个数是否为素数,
并利用该函数找出0 - 100以内的双胞胎素数
(两个素数之间相差为2)
#include <stdio.h>
int isPrime(int n)
{
int i = 0;
for (i = 2; i < n; ++i)
{
if (n % i == 0)
{
break;
}
}
return i<n?1:0;
}
void printTwinsPrimeNum(int n)
{
int i = 0;
for (i = 2; i <= n; ++i)
{
if (isPrime(i)==1&isPrime(i+2)==1)
{
printf("%d %d\n",i,i+2);
}
}
}
int main(void)
{
int n = 0;
scanf("%d",&n);
printTwinsPrimeNum(n);
return 0;
}
4、把两个已按升序排列的数组合并成一个升序数组,要求用函数实现
int a[5]
int b[5]
int c[5+5]
func(int a[],int len_a,int b[],int len_b)
{
}
#include <stdio.h>
void sortCombine(int a[],int len_a,int b[],int len_b,int c[],int len_c)
{
int i = 0;
int j = 0;
int k = 0;
while (i < 5 && j < 5)
{
if(a[i] > b[j])
{
c[k] = b[j];
k++;
j++;
}
else
{
c[k] = a[i];
k++;
i++;
}
}
while (i < 5)
{
c[k] = a[i];
k++;
i++;
}
while (j < 5)
{
c[k] = b[j];
k++;
j++;
}
return ;
}
void printArray(int a[],int len)
{
int i = 0;
for(i=0;i<len;++i)
{
printf("%d ",a[i]);
}
putchar('\n');
}
int main(void)
{
int a[5] = {1,3,5,7,9};
int b[5] = {2,4,6,8,10};
int c[5+5] = {0};
sortCombine(e,5,b,5,c,10);
printArray(c,10);
return 0;
}