头歌C++之函数练习题入门

目录

第1关:求最大值

任务描述

编程要求

第2关:时制转换

任务描述

编程要求

第3关:计算公式

任务描述

编程要求

测试说明

第4关:函数实现组合数

任务描述

编程要求

第5关:面积函数

任务描述

编程要求


第1关:求最大值

任务描述

本小节需要你求3个整数的最大值。

编程要求

编写函数max(int a, int b, int c),求3个整数的最大值,并通过main函数进行调用。

注意:输入的整数之间用空格隔开。

效果如下:

输入:29 76 -18

输出:76

#include <iostream>
using namespace std;
int max(int a,int b,int c);
int main()
{
    int a,b,c;
    cin>>a>>b>>c;
    cout<<max(a,b,c);
    return 0;
}
     // 请在此添加你的代码
    /********** Begin ********/
int max(int a,int b,int c)
{
    if(a>b)
    {
        if(a>c)
        return a;
        return c;
    }
    else
    {
        if(b>c)
        return b;
        return c;
    }
}
    /********** End **********/

第2关:时制转换

任务描述

本小节需要你完成将24小时制转换为12小时制的程序。

编程要求

编写函数convert(int &hour, int &minute, char &form),将24小时制转换为12小时制,如将14:25转换为2:25 PM,函数参数form取值用‘A’表示‘AM’,‘P’表示‘PM’。

因返回多个值,考虑传引用参数。

注意: 输入的时钟和分钟之间用空格隔开,输出格式为时钟:分钟 AM(或PM)。分钟和AM之间有一个空格。

效果如下:

输入:12 00

输出:12:0 PM

#include <iostream>
using namespace std;
int convert(int&hour,int&minute,char&form);
int main()
{
    // 请在此添加你的代码
    /********** Begin ********/
    int a;
    int b;
    char c;
    convert(a, b, c);
    cout << a << ":" << b << " " << c << "M";
 
    /********** End **********/
}
int convert(int&hour,int&minute,char&form)
{
     // 请在此添加你的代码
    /********** Begin ********/
    cin >> hour >> minute;
    int& printh=hour;
    if(hour>12) 
    {
        printh=hour-12;
        form='P';
    }
    else if(hour==12)
    {
        printh=12;
        form='P';
    }
    else 
    {
        printh=hour;
        form='A';
    }
    return printh;
    /********** End **********/
}

第3关:计算公式

任务描述

本关任务:编写一个编写递归函数fun(n)来计算一个分段函数。

编程要求

编写递归函数fun(n)实现如下图所示的func函数,其中n为正整数。

并编写测试函数main,输入正整数n,输出fun(n)的值。 例如:fun(6)=9,fun(8)=19。

测试说明

测试输入:6

预期输出:9

#include<iostream>
using namespace std;
int fun(int n);
int main()
{
     // 请在此添加你的代码
    /********** Begin ********/
    int num,f;
	cin >> num;
    cout << fun(num) << endl;

    /********** End **********/
}
int fun(int n)
{
     // 请在此添加你的代码
    /********** Begin ********/
   if(n<=3)
    {
        return n;  
    }
    else
    {
        return fun(n-1)+fun(n-3);

    }

    /********** End **********/
}

第4关:函数实现组合数

任务描述

本关任务:编写一个用函数实现组合数的计算程序。

编程要求

组合数公式为:C(m,r)=m!/(r!(m-r)!),请用函数分别实现阶乘函数和组合数计算,只要求输出组合数

效果如下:

输入: 8 1

输出: 8

#include <iostream>
using namespace std;
int J(int x)
{
     // 请在此添加你的代码
    /********** Begin ********/
    int s=1;
    for(int i=1;i<=x;i++)
    {
        s*=i;
    }
    return s;

    /********** End **********/
}
int C(int m,int r)
{
     // 请在此添加你的代码
    /********** Begin ********/
    int C;
    C=J(m)/(J(r)*J(m-r));
    return C;

    /********** End **********/
}
int main()
{
    int m,r;
    cin>>m>>r;
    cout<<C(m,r);
    return 0;
}

第5关:面积函数

任务描述

本关任务:编写一个能计算圆面积的和矩形面积的小程序。

编程要求

完成两个area函数的编写,一个函数根据半径r计算圆的面积并返回,一个根据边长a和b计算矩形的面积并返回,其中π为3.14。

输入: 半径 边长a 边长b 输出: 圆的面积 矩形面积

效果如下

输入: 1 1 2

输出: 3.14 2

#include <iostream>
using namespace std;
    /********** Begin ********/
int main()
{
    double r;
    cin >> r;
    double a,b;
    cin >> a >> b;
    cout << 3.14*r*r << endl;
    cout << a*b << endl;
    return 0;
}
	/********** End **********/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

leaving.zpp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值