关于循环与关系表达式的简单练习
1. 计算两个整数之间所有整数的和2. 计算100以内每个数的阶乘
1. 计算两个整数之间所有整数的和(1)问题描述
编写一个要求用户输入两个整数的程序,该程序将计算并输出这两个整数之间(包括这两个整数)所有整数的和。如用户输入7和9,则返回的结果是24;
(2)问题分析
因为要计算所有数的和,因此选用循环作为程序结构,那么选择选择哪种循环呢?因为起始条件和终止条件都和明确,所以用for循环最恰当;
(3)代码解答
#includeusing 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中的内容怎么办?方法建议在以下方式中二选一:
2. 计算100以内每个数的阶乘方法1:using std::cin; //声明时只使用标准库中的cin
方法2:std::cin >> start; //在使用中加上命名空间
(1)问题描述
使用array对象(不是数组)和long double(不是long long)计算100以内每个数的阶乘。
(2)问题分析
使用数组array存储阶乘的方法是,array[1]的值是1!,array[2]的值是2!……,这样每个值的序号只需和前一个数的值相乘,就得到了这个这个序号对应的阶乘值。使用array对象来实现该功能时区别不大,只是在声明上有所不同。
(3)代码解答
#include#include using std::cin; using std::cout; using std::endl; const int ArSize = 101; int main() { std::array 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)代码分析
要注意数组对象声明时要进行初始化操作(在后边加{})



