七天学会C语言-第五天(函数)

这篇具有很好参考价值的文章主要介绍了七天学会C语言-第五天(函数)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

七天学会C语言-第五天(函数),七天学会C语言,c语言,算法,开发语言,c++,函数

1. 调用有参函数

有参函数是一种接受输入参数(参数值)并执行特定操作的函数。通过向函数传递参数,你可以将数据传递给函数,让函数处理这些数据并返回结果。

例1:编写一程序,要求用户输入4 个数字,输出前两个数中的最大数、后两个数中的最大数以及四个数中的最大数。

#include <stdio.h>

double max(double x, double y);

int main() {
    double a[4];
    int i;

    for (i = 0; i < 4; i++) {
        if (scanf("%lf", &a[i]) != 1) {
            printf("输入不合法,请输入一个有效的数字。\n");
            return 1;  // 退出程序,返回错误代码
        }
    }

    double t = max(a[0], a[1]);
    double u = max(a[2], a[3]);
    double v = max(t, u);

    printf("前两个数中的最大数为%.2lf\n", t);
    printf("后两个数中的最大数为%.2lf\n", u);
    printf("四个数中的最大数为%.2lf\n", v);

    return 0;
}

double max(double x, double y) {
    return (x > y ? x : y);
}

运行结果:
七天学会C语言-第五天(函数),七天学会C语言,c语言,算法,开发语言,c++,函数

例 2:有两个小组,分别有5名学生和10名学生。请编程输入这些学生的成绩,并调用一个 average 函数求这两个小组的平均分。

#include <stdio.h>

float average(float a[], int n);

int main() {
    float zu1[5], zu2[10];
    int i;

   
    for (i = 0; i < 5; i++) {
        if (scanf("%f", &zu1[i]) != 1) {
            printf("输入不合法,请输入一个有效的数字。\n");
            return 1;  // 退出程序,返回错误代码
        }
    }

    
    for (i = 0; i < 10; i++) {
        if (scanf("%f", &zu2[i]) != 1) {
            printf("输入不合法,请输入一个有效的数字。\n");
            return 1;  // 退出程序,返回错误代码
        }
    }

    printf("第 1 组平均分是%.2f\n", average(zu1, 5));
    printf("第 2 组平均分是%.2f\n", average(zu2, 10));

    return 0;
}

float average(float a[], int n) {
    float sum = 0.0, average;
    int i;
    for (i = 0; i < n; i++) {
        sum += a[i];
    }
    average = sum / n;
    return average;
}

运行结果:
七天学会C语言-第五天(函数),七天学会C语言,c语言,算法,开发语言,c++,函数

2. 调用无参函数

无参函数是一种不需要接受任何输入参数的函数。它们通常用于执行一些固定的任务或打印消息,而不依赖于外部数据。

1:请编程输出以下内容:
123456
小翟是大帅逼
654321
小翟是大帅逼
654321
小翟是大帅逼
#include<stdio.h>

void a();
void b();
void c();

int main() {
    a();
    b();
    c();
    b();
    c();
    b();
    return 0;
}
void a() {
    printf("123456\n");
}
void b() {
    printf("小翟是大帅逼\n");
}
void c() {
    printf("654321\n");
}

运行结果:七天学会C语言-第五天(函数),七天学会C语言,c语言,算法,开发语言,c++,函数

例 2:请编程输入 10 个整数,并将这 10 个数由小到大排序。

#include<stdio.h>

void paixu(int a[], int n); // 修正参数列表

int main() {
    int a[10], i;
    printf("请输入 10 个整数:\n");
    for (i = 0; i < 10; i++)
        scanf("%d", &a[i]);
    
    paixu(a, 10);
    
    printf("排序后的整数依次是:\n");
    for (i = 0; i < 10; i++)
        printf("%d\t", a[i]);
    printf("\n");
    
    return 0;
}

void paixu(int a[], int n) {
    int i, j, t;
    for (i = 0; i < n - 1; i++)
        for (j = i + 1; j < n; j++)
            if (a[i] > a[j]) {
                t = a[i];
                a[i] = a[j];
                a[j] = t;
            }
}

运行结果:
七天学会C语言-第五天(函数),七天学会C语言,c语言,算法,开发语言,c++,函数

3. 函数的嵌套

函数的嵌套是指在一个函数内部调用另一个函数。这允许你将程序分解成更小的、可管理的部分。嵌套函数通常有助于提高代码的可读性和可维护性。

例 1:请编程输入 4 个整数,并找出其中最大的数。

#include <stdio.h>

int max4(int a, int b, int c, int d);
int max2(int a, int b);

int main()
{
    int a, b, c, d, zuidashu;
    scanf("%d %d %d %d", &a, &b, &c, &d);

    zuidashu = max4(a, b, c, d);
    printf("最大数为%d\n", zuidashu);
    return 0;
}

int max4(int a, int b, int c, int d)
{
    int max2(int a, int b);
    return (max2(max2(max2(a, b), c), d));
}

int max2(int a, int b)
{
    return (a > b ? a : b);
}

运行结果:
七天学会C语言-第五天(函数),七天学会C语言,c语言,算法,开发语言,c++,函数

4. 函数的递归

递归是一种函数调用自身的过程。递归函数通常包括两个部分:基本情况和递归情况。基本情况是一个停止条件,它指定何时结束递归。递归情况则定义了函数如何继续调用自身以解决更小的子问题。递归在解决需要重复分解的问题时非常有用,如计算阶乘或斐波那契数列等。

例1:有5个学生,第5个学生比第4个学生大2岁,第4个学生比第3个学生大2岁,第3个学生比第2个学生大2岁,第2个学生比第1个学生大2岁,第1个学生是10岁。请编程计算出第5个学生的年龄。

#include <stdio.h>

int calculateAge(int studentNumber);

int main() {
    int ageOfFifthStudent = calculateAge(5);
    printf("第5个学生的年龄:%d岁\n", ageOfFifthStudent);
    return 0;
}

int calculateAge(int studentNumber) {
    if (studentNumber == 1) {
        return 10; // 第1个学生是10岁
    } else {
        // 递归计算年龄,每个学生比前一个学生大2岁
        return calculateAge(studentNumber - 1) + 2;
    }
}


运行结果:
七天学会C语言-第五天(函数),七天学会C语言,c语言,算法,开发语言,c++,函数

例 2:用递归方法求 n!(注意取值范围)

#include <stdio.h>

int factorial(int n);

int main()
{
    int num;
    printf("Please enter an integer: ");
    scanf("%d", &num);

    printf("%d! = %d\n", num, factorial(num));
    return 0;
}

int factorial(int n)
{
    int result;
    if (n < 0)
        printf("n < 0, incorrect input!\n");
    else if (n == 0 || n == 1)
        result = 1;
    else
        result = factorial(n - 1) * n;

    return result;
}

运行结果:
七天学会C语言-第五天(函数),七天学会C语言,c语言,算法,开发语言,c++,函数文章来源地址https://www.toymoban.com/news/detail-732172.html

到了这里,关于七天学会C语言-第五天(函数)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【七天入门数据库】第五天 MySQL的备份恢复

    【七天入门数据库】第一天 MySQL的安装部署 【七天入门数据库】第二天 数据库理论基础 【七天入门数据库】第三天 MySQL的库表操作 【七天入门数据库】第四天 数据操作语言DML 【七天入门数据库】第五天 MySQL的备份恢复 【七天入门数据库】第六天 MySQL的视图与索引 【七天

    2024年02月16日
    浏览(55)
  • HTML5:七天学会基础动画网页9

    在进行接下来的了解之前我们先来看一下3d的xyz轴,下面图中中间的平面就相当于电脑屏幕,z轴上是一个近大远小的效果。 3d转换属性 transform             2D或3D转换 transform-origin  改变旋转点位置 transform-style   嵌套元素在3D空间如何显                               

    2024年03月12日
    浏览(39)
  • 十四天学会C++之第五天:类的详细讨论

    什么是友元函数和友元类,它们的作用。 如何声明和使用友元函数和友元类,访问类的私有成员。 友元函数(Friend Functions) 友元函数是一种特殊的函数,它被允许访问类的私有成员。这意味着即使成员是私有的,友元函数也能够直接访问它们,而不需要通过公有接口。这提

    2024年02月07日
    浏览(43)
  • 【C语言】字符函数与字符串函数以及内存函数 { 超详细攻略,一篇学会 }

    今日分享:字符、字符串函数和内存函数 内存函数 就是对内存进行操作的函数 字符串函数 就是对字符串进行操作的函数 字符函数 就是对字符进行操作的函数 str 前缀的函数是字符串函数,头文件string.h mem 前缀的函数是内存函数,头文件stdlib.h 字符分类函数包含在 ctype.h 头

    2024年03月18日
    浏览(57)
  • 【初阶C语言】学会使用库函数getchar和putchar

    目录 一、getchar函数 1.作用: 2.认识函数 3.运用 二、putchar函数 1.作用 2.定义 3.运用 三、getchar与putchar的运用 四、getchar的应用 1.作用:       该函数的作用是 接收一个字符 ,然后把该字符 转化对应的ASCII值 2.认识函数  参数类型:括号里面的void意思是 不接受参数 ,就是括

    2024年02月15日
    浏览(38)
  • 一篇博客学会系列(1) —— C语言中所有字符串函数以及内存函数的使用和注意事项

    目录 1、求字符串长度函数 1.1、strlen 2、字符串拷贝(cpy)、拼接(cat)、比较(cmp)函数 2.1、长度不受限制的字符串函数 2.1.1、strcpy 2.1.2、strcat 2.1.3、strcmp 2.2、长度受限制的字符串函数 2.2.1、strncpy 2.2.2、strncat 2.2.3、strncmp 3、字符串查找函数 3.1、strstr 3.2、strtok 4、错误信息报告函数

    2024年02月08日
    浏览(48)
  • 从入门到精通,30天带你学会C++【第五天:刷题软件的推荐及使用教程】(学不会你找我)

    目录 前言 刷题软件推荐 1、洛谷 2、OpenJudge 3、LeetCode 4、POJ 洛谷网站的使用方法 结尾 上期投票我定的时间太长了,相信很多人都等不及了,那么我就提前截止一下,抱歉。 在这也感谢大家参与! 截图时间:2023.9.1.21:56 投票结果是推荐刷题软件,那么今天课程他来了! 网址

    2024年02月10日
    浏览(40)
  • LLM大语言模型(三):使用ChatGLM3-6B的函数调用功能前先学会Python的装饰器

    目录 ChatGLM3-6B的函数调用模式示例 本地启动ChatGLM3-6B工具模式 如何在ChatGLM3-6B里新增一个自定义函数呢? get_weather基于Python的装饰器实现 函数注解@register_tool 现在我们来自定义一个kuakuawo()函数 ChatGLM3-6B目前有三种使用模式: 对话模式 工具模式(也就是本文要介绍的函数调用

    2024年01月25日
    浏览(71)
  • C语言(第三十五天)

    3. 移位操作符 左移操作符 右移操作符 注:移位操作符的操作数只能是整数。 3.1 左移操作符 移位规则:左边抛弃、右边补0 3.2 右移操作符 移位规则:首先右移运算分两种: 1. 逻辑右移:左边用0填充,右边丢弃 2. 算术右移:左边用原该值的符号位填充,右边丢弃 警告⚠️

    2024年02月10日
    浏览(38)
  • 算法训练第五十七天

    516. 最长回文子序列 - 力扣(LeetCode) 代码: 647. 回文子串 - 力扣(LeetCode)

    2024年02月09日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包