函数练习

写函数判断一个数是否为素数

123456789101112131415161718192021222324252627
#include <stdio.h>void Prime_Number(int* pnum){    int x,i,z=0;    x = *pnum;    for (i = 2; i < x; i++) {        if (x%i == 0) {            z = 1;            break;        }    }    if (z==0) {        printf("输入的数字是素数");    }else    {        printf("输入的数字不是素数");    }} int main() {    int num,a;    printf("判断一个数是否为素数\n");    printf("请输入一个数字:->");    scanf("%d",&num);    Prime_Number(&num);    return 0;}
1234567891011121314151617181920212223
#include <stdio.h>//是素数返回1,不是返回0int is_Prime(int n){    int i;    for (i = 2; i<n; i++) {        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);        }    }    return 0;}

写一个函数判断一年是否为闰年

123456789101112131415161718192021
#include <stdio.h>int Leap_Year(int a){    if ((a % 4 == 0 && a % 100 != 0 )|| a % 400 == 0) {        return 1;    }    return 0;} int main() {    int x;    printf("判断一年是否为闰年\n");    printf("请输入年份:->");    scanf("%d",&x);    if (Leap_Year(x)==1) {        printf("是闰年\n");    }else{        printf("不是闰年\n");    }    return 0;}

函数实现一个整型有序数组的二分查找

123456789101112131415161718192021222324252627282930313233343536
#include <stdio.h> int binary_search(int arr[],int k,int sz)//实参和形参的名字相同是可以的{    //算法的实现    int left = 0;//    int sz = sizeof(arr)/sizeof(arr[0]);//传过去的arr不是数组,本质上arr是指针,只是首元素的地址    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 = 20;    int sz = sizeof(arr)/sizeof(arr[0]);    int ret = binary_search(arr,k,sz);    if (ret == -1) {        printf("找不到\n");    }else    {        printf("找到了,下标是:%d\n",ret);    }}

写一个函数,每调用一次,num加1

12345678910111213141516
#include <stdio.h>void Record(int* x){    (*x)++;} int main() {    int i,num = 0;    Record(&num);    printf("%d\n",num);    Record(&num);    printf("%d\n",num);    Record(&num);    printf("%d\n",num);    return 0;}
🔍 ×