【C语言】函数的调用

对于函数的调用,有以下几个练习

一、找素数

自定义一个函数,找出100-200的所有素数,并在主函数中调用它

分析代码:

  1. 自定义一个函数,函数名为get_prime,函数类型为整型,函数变量为n

  1. 创建变量j,for循环,初始化j=2,判断部分为j

  1. if条件语句,如果n%j==0,则返回0,否则返回1

  1. 在主函数内,创建变量i,以及用于记数的变量count

  1. for循环,初始化为i=100,判断部分为i<200,调整部分为9i++

  1. 如果get_prime函数返回1,则打印出i,以及打印count

源代码:

int get_prime(int n)
{int j = 0;for (j = 2; j < n; j++){if (n % j == 0){return 0;}}return 1;
}
int main()
{int i = 0;int count = 0;for (i = 100; i < 200; i++){if (get_prime(i) == 1){count++;printf("%d ", i);}}printf("\ncount=%d\n", count);return 0;
}

二、找闰年

自定义一个函数,找出1000-2000之间的闰年,主函数中调用它

提示:闰年为四年一闰,百年不闰,四百年一闰

分析代码:

  1. 自定义函数,函数名为is_leap_year,函数类型为整型,函数变量为整型n

  1. if条件语句,如果(n%4==0 &&n%10!=0)||(n%400==0),返回1,否则返回0

  1. 在主函数内,创建变量y以及记数变量count

  1. for循环,初始化为y=1000,判断部分为y<2000,调整部分为y++

  1. if条件语句,如果函数is_leap_year返回1,则打印y,打印count

源代码:

int is_leap_year(int n)
{if ((n % 4 == 0 && n % 100 != 0) || (n % 400 == 0)){return 1;}elsereturn 0;}
int main()
{int y = 0;int count = 0;for (y = 1000; y < 2000; y++){if (is_leap_year(y) == 1){count++;printf("%d ", y);}}printf("\ncount=%d\n", count);return 0;
}

三、二分查找

自定义一个函数,调用函数进行二分查找,找到目标数的下标

分析代码:

  1. 先看主函数内,创建一个有10个元素的数组,元素为1-10

  1. 创建变量key为目标数7

  1. 创建变量sz,计算数组的元素个数

  1. 创建变量ret,将自定义函数返回值存入ret

  1. 如果ret返回-1,则打印找不到,否则打印找到了,并打印出目标数的下标

  1. 再看自定义函数,函数名为binary_search,函数类型为整型,函数变量有(数组名称,目标数,元素个数)

  1. 创建变量left为0,right为sz-1

  1. while循环,条件为left<=right

  1. 进入循环,创建变量mid=(left+right)/2

  1. 如果a[mid]>k,就right=mid-1,否则left=mid+1,else返回mid,找不到返回-1

源代码:

int binary_search(int a[], int k, int s)
{int left = 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;}elsereturn 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]);int ret = binary_search(arr, key, sz);if (-1 == ret){printf("找不到\n");}elseprintf("找到了,下标为:%d", ret);return 0;
}

总结

以上就是本人对于函数调用的小练习的全部学习与理解


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部