C++之函数练习题入门

第1关:求最大值

1

  • 任务要求
  • 参考答案
  • 评论9

任务描述

本小节需要你求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)
{
    if(a>b)
    {
        if(a>c)
        return a;
        return c;    
    }
    {
        if(b>c)
        return b;
        return c;
    }
}
int main()
{
    int a,b,c;
    cin>>a>>b>>c;
    cout<<max(a,b,c);
    return 0;
}

第2关:时制转换

100

  • 任务要求
  • 参考答案
  • 评论9

任务描述

本小节需要你完成将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


开始你的任务吧,祝你成功!

第2关:时制转换

100

  • 任务要求
  • 参考答案
  • 评论9

任务描述

本小节需要你完成将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 h,m;
  char f;
  cin>>h>>m;
  convert(h,m,f);
if(f=='A'){
  cout<<h<<<<":"<<" "<<m<<"AM";
}else{
  cout<<H<<":"<<" "<<m<<"PM";
}
    /********** End **********/
}
int convert(int&hour,int&minute,char&form)
{
     // 请在此添加你的代码
    /********** Begin ********/
  if(hour>12){
      hour=hour-12;
      form='P';
   }else{
     if(hour==12) form='P';
     }else{
          if (hour==12) form='P';
          else form='A';
          }
          return 0;
    /********** End **********/
}

第3关:计算公式

100

  • 任务要求
  • 参考答案
  • 评论9

任务描述

本关任务:编写一个编写递归函数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 n{};
cin>>n;
cout<<fun(n);
    /********** End **********/
}
int fun(int n)
{
     // 请在此添加你的代码
    /********** Begin ********/
int result {};
if(n<=3){
    result=n;
}else{
    result=fun(n-1)+fun(n-3);
}
return result;
    /********** End **********/
}

第4关:函数实现组合数

100

  • 任务要求
  • 参考答案
  • 评论9

任务描述

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

编程要求

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

效果如下: 输入: 8 1 输出: 8


开始你的任务吧,祝你成功!

#include <iostream>
using namespace std;
int J(int x)
{
     // 请在此添加你的代码
    /********** Begin ********/
int j=1;
for(int i=1;i<=x;i++){
    j=j*i;
}
return j;
    /********** End **********/
}
int C(int m,int r)
{
     // 请在此添加你的代码
    /********** Begin ********/
    return J(m)/(J(r)*J(m-r));
    /********** End **********/
}
int main()
{
    int m,r;
    cin>>m>>r;
    cout<<C(m,r);
    return 0;
}

第5关:面积函数

100

  • 任务要求
  • 参考答案
  • 评论9

任务描述

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

编程要求

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

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

效果如下 输入: 1 1 2 输出: 3.14 2


开始你的任务吧,祝你成功!

#include<iostream>                
using namespace std;
const double pi=3.14;         
double area(double r){
    return pi*r*r;
}
double area(double a,double b){
    return a*b;
}
int main()
{
	double r,a,b;	        
	cin>>r;                    
    cin>>a;
    cin>>b;
      
    cout<<area(r)<<endl;
    cout<<area(a,b);
	return 0;
}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值