首页 > 其他分享 >鹏哥C语言42---函数调用相关练习

鹏哥C语言42---函数调用相关练习

时间:2024-09-18 14:53:05浏览次数:11  
标签:arr return int 鹏哥 printf 42 函数调用 num year

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//------------------------------------打印1000-2000年之间的闰年---------------------------------------------------
//闰年的判断规则有两个
//1.能被4整除,但是不能被100整除
//2.能被400整除也是闰年
/*
int main()
{
    int year = 0;
    for (year = 1000; year <= 2000; year++)
    {
        判断每次产生的 year 是不是闰年-------------------方法1
        //if (year%4==0) // 规则 1
        //{
        //    if (year % 100 != 0)
        //    {
        //        printf("%d ", year);
        //    }
        //}
        //
        //if (year % 400 == 0)// 规则 2
        //{
        //    printf("%d ", year);
        //}

        //判断每次产生的 year 是不是闰年-------------------方法2 (简化)
        if (( (year % 4 == 0) && (year % 100 != 0) ) || (year % 400 == 0))
        {
            printf("%d ", year);
        }

    }
    return 0;
}
*/

//------------------------------------2. 写一个 函数 ,判断一年是不是闰年----------------------------------------
/*
int is_leap_year(int y) // 是闰年返回1,不是闰年返回0
{
    if (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0))
    {
        return 1;
    }
    return 0;
}

int main()
{
    int year = 0;
    int count = 0;
    for (year = 1000; year <= 2000; year++)
    {
        //判断每次产生的 year 是不是闰年
     // 是闰年返回   1
     //不是闰年返回 0
        if (is_leap_year(year))
        {
            count++;
            printf("%d ", year);
        }
    }
    printf("\ncount=%d", count);

    return 0;
}
*/

//---------------------------3.写一个函数,实现一个整型有序数组的二分查找-----------------------------------

//数组传参实际上传递的是数组首元素的地址
//这里 arr[] 其实是个指针变量,存放的是数组的首元素地址
//因此不能把 数组元素个数的计算  放到函数里

/*
int binary_search(int arr[], int k, int sz) // 形参和实参的命名可以相同可以不同
{
    //  int sz = sizeof(arr) / sizeof(arr[0]);  //  不能把 数组元素个数的计算  放到函数里 ,error,只能计算出1或者2
    int left = 0;
    int right = sz;
    
    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()
{
    int arr[] = { 1,2,3,4,5,6,7,8,910 };
    int k = 0;
    scanf("%d", &k);
    int sz = sizeof(arr) / sizeof(arr[0]); //求数组中元素个数
    
    //先想好函数怎么用,再尝试
    //如果找到了,返回下标,
   //如果找不到,返回 -1

    int ret = binary_search(arr, k, sz);// 调用函数 进行 二分查找
    if (ret == -1)
    {
        printf("找不到\n");
    }
    else
    {
        printf("找到了,下标为:%d\n", ret);
    }

    return 0;
}
*/


//--------------------------------------------------------------------------------------布尔类型 bool
// 用来表示真假的变量
// 判断一个数是不是素数
//是素数,返回1
//不是素数,返回0
#include <stdbool.h>
#include <math.h>

/*
bool is_prime(int n)
{
    int j = 0;
    for (j = 2; j <= sqrt(n); j++)
    {
        if (n % j == 0)
        {
            return false;
        }
    }
    return true;
}

int main()
{
    int i = 0;
    int count = 0;
    for (i = 101; i <= 200; i += 2) //排除偶数
    {
        if (is_prime(i)) //调用函数  如果 is_prime(i) 为真,打印
        {
            count++;
            printf("%d ", i);
        }
    }
    printf("\ncount=%d\n", count);

    return 0;
}
*/

//-----------------------------4.写一个函数,每调用一次这个函数,就会将 num 的值增加1------------------
void ADD(int* p)
{
    (*p)++;
}

int Add(int n)
{
    return n+1;
 //return n++; // 先返回,后++了,错误
 //return ++n; // 先++,后返回,可以

}

int main()
{
    int num = 0;
    //-------------------------------------方法一
    //ADD(&num);
    //printf("%d\n", num);// 输出1
    //ADD(&num);
    //printf("%d\n", num);// 输出 2 
    
    //-------------------------------------方法二
    num = Add(num);
    printf("%d\n", num);// 输出1
    num = Add(num);
    printf("%d\n", num);// 输出2

    return 0;
}

标签:arr,return,int,鹏哥,printf,42,函数调用,num,year
From: https://blog.csdn.net/most_wanted_/article/details/142333634

相关文章

  • springboot家校共育平台-计算机毕业设计源码54235
    摘 要采用高效的SpringBoot框架,家校共育平台为家长与教师提供了便捷的沟通渠道。该平台整合了丰富的教育资源,实现了家校之间的即时信息互通,从而助力协同教育。为进一步方便用户访问和使用,平台与微信小程序进行了深度整合。家长和教师现在可以通过微信小程序轻松访问平台,无......
  • 代码随想录算法训练营第四天|24两两交换链表中的节点 19删除链表的倒数第N个节点 02.0
    24.两两交换链表中的节点给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。由于今天赶时间,第一眼看完题目没思路就直接看文字解析了,但还是复述一下看完之后自己的理解/想法/思路。这一题感觉对......
  • Day5||242.有效的字母异位词|349.两个数组的交集|202.快乐数|1.两数之和
    哈希表理论基础哈希表(hashtable):是根据关键码的值而直接进行范围的数据结构。如数组也是一张哈希表。 解决问题:一般哈希表都是用来快速判断一个元素是否出现集合里。(牺牲空间换取时间)例如要查询一个名字是否在这所学校里。要枚举的话时间复杂度是O(n),但如果使用哈希表......
  • 水果软件21更新!Image-Line FL Studio Producer Edition v24.1.1.4285 WIN全插件版本+
    在数字音乐创作领域,FLStudio(也称为FruityLoops)一直以来都是众多音乐制作人心目中的首选工具。随着版本的不断更新迭代,FLStudioProducerEdition24.1.1.4285中文版的发布,无疑为广大的华语音乐创作者们带来了更为便捷、高效且功能强大的音乐制作体验。本文将从多个角度深入......
  • 【高中数学/极值/基本不等式】已知正实数x,y满足xy+2x+3y=42 则xy+5x+4y的最小值为?
    【问题】已知正实数x,y满足xy+2x+3y=42则xy+5x+4y的最小值为?【出处】《解题卡壳怎么办--高中数学解题智慧剖析》P38页第5题余继光、苏德矿著 【解答】由xy+2x+3y=42得(x+3)(y+2)-6=42再得(x+3)(y+2)=48设a=x+3,b=y+2xy+5x+4y=(x+4)(y+5)-20=(a+1)(b+3)-20=ab+3a+b+3-20=48+3a+......
  • 鹏哥C语言39---函数的分类
    #define_CRT_SECURE_NO_WARNINGS//----------------------------------------------------------------------------------------------------------第三章.函数/*1 函数是什么2 C语言中函数的分类3 函数的参数4 函数的调用5 函数的嵌套调用和链式访问6 ......
  • 代码随想录算法训练营Day5 | 哈希表理论基础、242.有效的字母异位词、349.两个数组的
    哈希表理论基础哈希表哈希表是根据关键码的值而直接进行访问的数据结构。数组就是一张哈希表,哈希表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素,如下图所示:哈希表一般用来快速判断一个元素是否出现集合里。哈希函数哈希函数通过特定编码方式,可以将其......
  • 鹏哥C语言39---分支/循环语句练习:猜数字游戏
    #define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<time.h>//voidfun(inta[]) //因为传过来的是地址,所以应该用一个指针变量来接收,故这里的a本质上是个指针变量//{//   printf("%zu",sizeof(a));//输出8 在x64下,指针大小是......
  • jsp城市集中隔离中心信息系统3h442
    jsp城市集中隔离中心信息系统3h本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能用户,医生,防疫物资,疫苗信息,疫苗接种,密触人员,核酸检测,医生诊断,出入登记技术要求:   开发语言:JSP前端使用......
  • Day4||24.两两交换链表中的节点|19.删除链表的倒数第n个结点|面试题:链表相交|142.环形
    24.两两交换链表中的节点题目:24.两两交换链表中的节点-力扣(LeetCode)给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。图解思路首先,虚拟头结点挺方便链表进行增删改操作的。本题操作用到三......