C++-函数-计算x的y次幂(头歌)

任务描述

使用系统函数pow(x,y)计算x y的值,注意包含头文件math.h。

相关知识

为了你能够更好的完成本关的任务,你需要掌握

函数的参数;

如何使用 C++ 系统函数。

函数的参数

函数的参数传递

在函数被调用时才分配形参的存储单元;

实参可以是常量、变量或表达式;

实参类型必须与形参相符或可隐式转换为形参类型;

值传递是传递参数值,即单向传递;

引用传递可以实现双向传递;

常引用作参数可以保障实参数据的安全。 例: 输入两个整数并交换(值传递)

#include<iostream>

using namespace std;

void swap(int a, int b) {

int t = a;

a = b;

b = t;

}

int main() {

int x = 5, y = 10;

cout<<"x = "<<x<<" y = "<<y<<endl;

swap(x, y);

cout<<"x = "<<x<<" y = "<<y<<endl;

return 0;

运行结果: x = 5 y = 10 x = 5 y = 10

 例: 输入两个整数交换后输出(引用传递)

#include<iostream>

using namespace std;

void swap(int& a, int& b) {

int t = a;

a = b;

b = t;

}

int main() {

int x = 5, y = 10;

cout<<"x = "<<x<<" y = "<<y<<endl;

swap(x, y);

cout<<"x = "<<x<<" y = "<<y<< endl;

return 0;

}

运行结果:

x = 5 y = 10

x = 10 y = 5

引用类型

引用(&)是标识符的别名; 例如: int i, j; int &ri = i; //定义int引用ri,并初始化为变量i的引用 j = 10; ri = j;//相当于 i = j;

声明一个引用时,必须同时对它进行初始化,使它指向一个已存在的对象;

一旦一个引用被初始化后,就不能改为指向其它对象;

引用可以作为形参。 void swap(int &a, int &b) {...}

可变数量形参

使用模板类initializer_list可向函数传递同类型不定个数参数, 例如: void log_info(initializer_list lst) { for (auto &info: lst) cout << info << ‘ ’; cout << endl; } log_info({“Hello”, ”world”, “!”});

initializer_list lst接受不定个数字符串实参

注意

实参以大括号列表方式给出

使用范围for语句遍历lst,auto自动推断元素为string类型

参数的默认值

可以预先设置默认的参数值,调用时如给出实参,则采用实参值,否则采用预先设置的默认参数值。 例如: int add(int x = 5,int y = 6) { return x + y; } int main() { add(10,20); //10+20 add(10); //10+6 add(); //5+6 }

默认参数值的说明次序

有默认参数的形参必须列在形参列表的最右,即默认参数值的右面不能有无默认值的参数

调用时实参与形参的结合次序是从左向右 例: int add(int x, int y = 5, int z = 6);//正确 int add(int x = 1, int y = 5, int z);//错误 int add(int x = 1, int y, int z = 6);//错误 int add(int x = 5,int y = 6);

默认参数值与函数的调用位置

如果一个函数有原型声明,且原型声明在定义之前,则默认参数值必须在函数原型声明中给出;而如果只有函数的定义,或函数定义在前,则默认参数值需在函数定义中给出。 例: //原型声明在前 int main() { add(); } int add(int x,int y) { //此处不能再指定默认值 return x + y; }

int add(int x = 5,int y = 6) { //只有定义,没有原型声明 return x + y; } int main() { add(); }

使用 C++ 系统函数

C++的系统库中提供了几百个函数可供程序员使用,例如:求平方根函数(sqrt),求绝对值函数(abs);

使用系统函数时要包含相应的头文件,例如:cmath;

例: 系统函数应用举例

题目:从键盘输入一个角度值,求出该角度的正弦值、余弦值和正切值;

分析:系统函数中提供了求正弦值、余弦值和正切值的函数:sin()、cos()、tan(),函数的说明在头文件cmath中。

#include <iostream>

#include <cmath>

using namespace std;

const double PI = 3.14159265358979;

int main() {

double angle;

cout << "Please enter an angle: ";

cin >> angle; //输入角度值

double radian = angle * PI / 180; //转为弧度

cout << "sin(" << angle << ") = " << sin(radian) <<endl;

cout << "cos(" << angle << ") = " << cos(radian) <<endl;

cout << "tan(" << angle << ") = " << tan(radian) <<endl;

return 0;

}

运行结果:

30

sin(30)=0.5

cos(30)=0.866025

tan(30)=0.57735

任务要求

请使用系统函数编写计算 x 的 y 次幂的代码,并将代码补充在右侧任务挑战区 Begin-End 之间。

测试说明

平台会对你编写的代码进行测试:

测试输入:2,5

预期输出:32

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

5c5858b5df3e481f8a255b69c72e3d15.jpg

 微信公众号隔天同步更新:

f3fefbc4dfd749ae82708dd700601516.jpg

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值