C语言基础-函数的调用

void Swap1(int x, int y)
{
    int z = 0
    z = x;
    x = y;
    y = z;
}
void Swap2(int* pa, int* pb)
{
    int z = 0;
    z = *pa;
    *pa = *pb;
    *pb = z;
}
int main()
{
    int a = 10;
    int b = 20;

    printf("换前:%d %d\n", a, b);
    Swap1(a, b);//传值调用
    printf("换后:%d %d\n", a, b);
    Swap2(&a, &b);//传址调用
    printf("换后:%d %d\n", a, b);

    return 0;
}

练习

1、写函数,判断素数

int is_prime(int n)
{
    int j = 0;
    for (j = 2; j < n; j++)//用2到n-1除自己
    {
        if (n % j == 0)
        {
            return 0;//不是素数返回0
        }
    }
    return 1;//是素数返回1
}
int main()//素数(质数):只能被1和自己整除
{
    int i = 0;
    for (i = 100; i <= 200; i++)
    {
        if (is_prime(i) == 1)//判断是否为素数
        {
            printf("%d ", i);
        }
    }
    return 0;

2、写函数,判断闰年

int is_leap_year(int n)//不写返回类型时,默认返回int类型
{
    if ((n % 4 == 0 && n % 100 != 0) || n % 400 == 0)
        return 1;
    else
        return 0;
}
//int is_leap_year(int n)(也可以直接判断)
//{
//    return ((n % 4 == 0 && n % 100 != 0) || n % 400 == 0);
//}
int main()
{
    int i = 0;
    for (i = 1000; i <= 2000; i++)
    {
        if (is_leap_year(i) == 1)
        {
            printf("%d ", i);
        }
    }
    return 0;
}

3、写函数,实现有序数组的二分查找

int binary_search(int a[],int k,int s)//不写返回类型时,默认返回int类型
{
    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;
        }
        else
        {
            return 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 (ret == -1)//找不到返回-1
    {
        printf("找不到\n");
    }
    else
    {
        printf("找到了,下标是:%d\n",ret);
    }
    return 0;
}

4、写函数,调用一次这个函数,num的值就加1

void add(int* p)
{
    (*p)++;
}
int main()
{
    int num = 0;

    add(&num);
    printf("%d/n", num);//1

    add(&num);
    printf("%d/n", num);//2

    add(&num);
    printf("%d/n", num);//3

    return 0;
}

希望本文对大家有帮助,上文若有不妥之处,欢迎指正

分享决定高度,学习拉开差距

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值