循环与关系表达式简单练习_C++基础

关于循环与关系表达式的简单练习

1. 计算两个整数之间所有整数的和

(1)问题描述
编写一个要求用户输入两个整数的程序,该程序将计算并输出这两个整数之间(包括这两个整数)所有整数的和。如用户输入7和9,则返回的结果是24;
(2)问题分析
因为要计算所有数的和,因此选用循环作为程序结构,那么选择选择哪种循环呢?因为起始条件和终止条件都和明确,所以用for循环最恰当;
(3)代码解答

#include <iostream>
using std::cin;
using std::cout;
using std::endl;

int main() {
    int intervalSum(int a, int b);      //函数声明

    int begin = 0, end = 0;
    cout << "请依次输入开始值和结果值:";
    cin >> begin >> end;

    cout << intervalSum(begin, end) << endl;
    return 0;
}

int intervalSum(int a, int b){
    int sum{};
    for(int i = a; i < b + 1; i++){
        sum += i;
    }
    return sum;
}

(4)运行结果
在这里插入图片描述在这里插入图片描述
(5)代码分析
1.关于命名空间,不建议直接使用using namespace std, 这句话意味着以下代码使用的所有名称皆来自标准函数库,这对于大型复杂的项目来说是可怕的,因此若要使用std中的内容怎么办?方法建议在以下方式中二选一:

方法1:using std::cin; //声明时只使用标准库中的cin
方法2:std::cin >> start; //在使用中加上命名空间

2. 计算100以内每个数的阶乘

(1)问题描述
使用array对象(不是数组)和long double(不是long long)计算100以内每个数的阶乘。
(2)问题分析
使用数组array存储阶乘的方法是,array[1]的值是1!,array[2]的值是2!……,这样每个值的序号只需和前一个数的值相乘,就得到了这个这个序号对应的阶乘值。使用array对象来实现该功能时区别不大,只是在声明上有所不同。
(3)代码解答

#include <iostream>
#include <array>
using std::cin;
using std::cout;
using std::endl;

const int ArSize = 101;

int main() {
    std::array<long double, ArSize> factorials{};
    factorials[1] = factorials[0] = 1;
    for (int i = 2; i < ArSize; ++i)
        factorials[i] = i*factorials[i - 1];
    for (int i = 0; i < ArSize; ++i)
        cout << i << "! =" << factorials[i] << endl;
    return 0;
}

(4)运行结果
在这里插入图片描述

(5)代码分析
要注意数组对象声明时要进行初始化操作(在后边加{})

3. 不同投资方式的比较

(1)问题描述
Daphne以10%的单利投资了100美元,也就是说,每一年的利息都是投资额的10%,即每年10美元,单利的计算方式为:

利息 = 0.10 x 原始存款

而Cleo以5%的复利投资了100美元,利息是当前存款(包括获得的利息)的5%,即

利息 = 0.05 x 当前存款

Cleo在第1年投资100美元的利率是5%——得到了105美元。下一年的利息是105美元的5%,即5.25美元,以此类推。请计算多少年后,Cleo的总金额会超过Daphne的总金额,并显示此时两个人的总金额。

(2)问题分析
使用循环,但是不确定终止条件,因此原则while循环最恰当。
(3)代码解答

#include <iostream>
using namespace std;
const int DEROSIT_BASE = 100;       //定义基准常量


int main() {
    float Daphen_deposit = DEROSIT_BASE;
    float Cleo_deposit = DEROSIT_BASE;
    int  year = 0;
    while (Daphen_deposit >= Cleo_deposit){     //Dophen的利息不大于Cleo的利息后就退出
        cout << "In " << year++ << " year: Daphen_deposit = " << Daphen_deposit;
        cout << ", Cleo_deposit = " << Cleo_deposit <<endl;
        Daphen_deposit += DEROSIT_BASE*0.1;
        Cleo_deposit += Cleo_deposit*0.05;
    }
    cout << "In " << year << " year: Daphen_deposit = " << Daphen_deposit;
    cout << ", Cleo_deposit = " << Cleo_deposit <<endl;
    return 0;
}

(4)运行结果
在这里插入图片描述

(5)代码分析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值