【C++学习笔记2】实验2-C++对C常规性能扩充(1)

【描述】
计算数列1+1/3+1/5+…的前n项之和。
【输入】
输入一个正整数n。
【输出】
输出数列前n项的和。
【输入示例】
10
【输出示例】
2.13326
【来源】
《程序设计基础——以C++为例》第2章实验10。

#include<iostream>
using namespace std;
int main(){
    int i;
    double sum=0;
    int n;
    cin>>n;
    for(i=1;i<=n;i++)
    {
        sum+=1.0/(2*i-1);	//下面是奇数,用2*i-1表示
    }
    cout<<sum<<endl;
    return 0;
}

【描述】
某工地需要搬运砖块,已知男人一人搬3块,女人一人搬2块,小孩两人搬1块。用45人正好搬45块砖,问有多少种搬法?
【输入】
没有输入。
【输出】
输出搬砖的男人、女人和小孩数。
【输出示例】
A,B,C
A、B、C分别表示男人、女人、小孩数。
【来源】
《程序设计基础——以C++为例》第2章实验14。

#include<iostream>
using namespace std;
int main(){	//枚举
    for(int i=0;i<=15;i++)
    {	//45/3==15
        for(int j=0;j<=22;j++)
        {	//45/2==22
           for(int k=0;k<=90;k++)
           {	//45/0.5==90
               if((i*3+j*2+k*0.5==45) && i+j+k==45)
               {//满足题目条件则输出
                   cout<<i<<","<<j<<","<<k<<endl;//题目格式要求
               }
           }
        }
    }
    return 0;
}


【描述】
正多边形是一个有n条边的多边形,每条边的长度side相同,每个角的度数也相同。求正多边形面积的公式如下:
在这里插入图片描述

要求定义和调用函数:double computeArea(int n,double side),该函数返回正多边形面积。π值为3.14159。
【输入】
输入有两行:第一行一个正整数,表示正多边形的边数;第二行一个实数,表示正多边形的边长。
【输出】
输入对应的正多边形面积。
【输入示例】
5
3
【输出示例】
15.4843
【来源】
《程序设计基础——以C++为例》第2章实验1强化练习。

#include <iostream>
#include <cmath>//原C语言:math.h
using namespace std;
double computeArea(int n, double side);
int main() {
    int n;
    cin >> n;
    double side;
    cin >> side;
    cout << computeArea(n, side) << endl;
    return 0;
}
/* 请在下面编写computeArea函数 */
double computeArea(int n, double side)
{
    return ((n*side*side)/(4.0*tan(3.14159/n)));//根据上面公式
}

【描述】
定义和调用如下计算面积的函数:
double computeArea(double radius = 1);
double computeArea(double width, doubleheight);
double computeArea(double side1, doubleside2, double side3);
分别计算圆、矩形和三角形的面积。如果函数返回的面积为0,表示输入数据不合法。π值为3.14159。
要求用函数重载实现。
内联函数isValid用于判断三角形合法性:
inline bool isValid(double side1, doubleside2, double side3);
【输入】
输入有三行:第一行圆半径;第二行矩形宽度和高度,两个实数以空格间隔;第三行三角形边长,三个实数以空格间隔。
【输出】
分行输出对应的圆、矩形和三角形面积。
【输入示例】
5
10 10
1 2 3
【输出示例】
78.5397
100
0
【来源】
《程序设计基础——以C++为例》第2章实验7。

#include <iostream>
#include <cmath>
using namespace std;



/* 请在此处分别编写isValid函数和computeArea函数 */
const double PI=3.14159;
inline bool isValid(double side1, double side2, double side3)
{	//三角形两边之和大于第三边
    if(side1+side2<side3||side2+side3<side1||side3+side1<side2)
    {
        return false;	//有一项条件不符就不是三角形
    }
    return true;
}
double computeArea(double radius = 1)
{
    return PI*radius*radius;	//圆的面积=πr²
}
double computeArea(double width, double height)
{
    return width*height;	//矩形面积=长*宽
}
double computeArea(double side1, double side2, double side3)
{
    if(isValid(side1,side2,side3))//判断是否三角形
    {	//海伦公式
        double p=(side1+side2+side3)/2.0;	//p=(a+b+c)/2
        return sqrt(p*(p-side1)*(p-side2)*(p-side3));	//S=sqrt[p(p-a)(p-b)(p-c)]
    }
    return 0;//不是则根据样例返回0
}



int main() {
    double radius;
    cin >> radius;
    double width, height;
    cin >> width >> height;    
    double side1, side2, side3;
    cin >> side1 >> side2 >> side3;
    cout << computeArea(radius) << endl;
    cout << computeArea(width, height) << endl; 
    cout << computeArea(side1, side2, side3) << endl;
    return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值