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

news/2024/11/9 23:23:53 标签: c语言, 算法, c++

#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;
}


http://www.niftyadmin.cn/n/5665150.html

相关文章

儿童与成人目标检测系统源码分享

儿童与成人目标检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Comput…

探索网络世界:TCP/IP协议、Python Socket编程及日常生活比喻

网络介绍 &#x1f310; 网络就像是一个无形的纽带&#xff0c;把我们所有人&#x1f46b;&#x1f46b;&#x1f46b;紧紧相连。没有网络的世界&#xff0c;就像是失去了色彩的画布&#xff0c;多么的单调和无趣啊&#xff01;&#x1f3a8; 单机游戏 &#x1f3ae; 单机游…

BOE(京东方)领先科技赋能体育产业全面向新 以击剑、电竞、健身三大应用场景诠释未来健康运动新生活

巴黎全球体育盛会虽已闭幕&#xff0c;但世界范围内的运动热潮并未消退。9月12日&#xff0c;在北京恒通国际商务园&#xff08;UBP&#xff09;的之所ICC&#xff0c;BOE&#xff08;京东方&#xff09;开启了以“屏实力 FUN肆热爱”为主题的“科技赋能体育”互动体验活动。活…

Shell篇之编写php启动脚本

Shell篇之编写php启动脚本 1. 脚本内容 vim php-fpm_ctl.sh#!/bin/bashfunction_start(){/opt/nginx/php/php-fpm start }function_stop(){/opt/nginx/php/php-fpm stop }function_restart(){/opt/nginx/php/php-fpm restart }function_status(){ cgi_stat0 cgi_tmpaps -ef |…

《C++移动语义:解锁复杂数据结构的高效之道》

在 C的编程世界中&#xff0c;移动语义是一项强大的特性&#xff0c;它能够在处理复杂数据结构如链表、树等时&#xff0c;极大地提高程序的性能和效率。理解并正确实现移动语义在这些复杂数据结构中&#xff0c;对于开发者来说至关重要。 一、移动语义简介 C11 引入了移动语…

开源模型应用落地-qwen模型小试-调用Qwen2-VL-7B-Instruct-更清晰地看世界-集成vLLM(二)

一、前言 学习Qwen2-VL ,为我们打开了一扇通往先进人工智能技术的大门。让我们能够深入了解当今最前沿的视觉语言模型的工作原理和强大能力。这不仅拓宽了我们的知识视野,更让我们站在科技发展的潮头,紧跟时代的步伐。 Qwen2-VL 具有卓越的图像和视频理解能力,以及多语言支…

vue3前端开发-小兔鲜超市-本地购物车列表页面的统计计算

vue3前端开发-小兔鲜超市-本地购物车列表页面的统计计算&#xff01;这一次&#xff0c;实现了一些本地购物车列表页面的&#xff0c;简单的计算。 代码如下所示&#xff1a; import { computed, ref } from vue import { defineStore } from pinia export const useCartStor…

Java操作数栈分析

Java 的操作数栈&#xff08;Operand Stack&#xff09;是 JVM 的运行时数据区域之一&#xff0c;位于每个线程的栈帧中。操作数栈用于临时存储操作的中间结果和数据&#xff08;操作数&#xff09;&#xff0c;在方法执行时&#xff0c;JVM 的字节码指令会对操作数栈进行操作。…