C++表达式是值或值与运算符的组合,每个C++表达式都有值。
for循环(阶乘)
#include <iostream> using namespace std; const int ArSize = 16; //外部声明 int main() { long long factorials[ArSize]; factorials[1] = factorials[0] = 1LL; for (int i= 2; i < ArSize ;i++) factorials[i] = i * factorials[i-1]; for (i= 0; i < ArSize ; i++) std::cout<< i <<"! = "<< factorials[i] << std::endl; return 0; }
该程序用一个循环来计算连续阶乘的值,并将这些值存储在数组中。然后,用另一个循环来显示结果。
我的系统不支持long long
书上推荐使用double
可以使用long的,推荐使用long,可是的阶乘的增大方式看起来更明显。
iostream类提供了多种逐字节地读取文本输入或文本文件的方法。
1)如果ch是一个char变量,cin>>ch; 语句可将输入中的下一个字符读入到ch中,但会忽略空格、换行符和制表符。
2)cin.get(ch)和ch=cin.get()成员函数调用读取输入中的下一个字符(而不管字符是什么),并将其存储到ch中。
3)cin.get(ch)成员函数调用通过返回转换为false的bool值来指出已到达EOF,
而ch=cin.get()成员函数调用通过返回转换为EOF的bool值来指出已到达EOF(EOF是在文件iostream中定义的)。
复习题
1、在查看输入方面,cin>>ch和cin.get(ch)和ch=cin.get()有什么不同?
答:cin>>ch将跳过空格、换行符和制表符,其他两种格式将读取这些字符。
2、入口条件循环和出口条件循环之间的区别是什么?各种C++循环分别属于其中的哪一种?
答:输入条件循环在进入输入循环体之前将评估测试表达式。如果条件最初为false,则循环不会执行其循环体。退出条件循环在处理循环体之后评估测试表达式。因此,即使测试表达式最初为false,循环也将执行一次。for和while循环都是输入条件循环,而do while循环时退出条件循环。
3、编写一个使用嵌套循环的程序,要求用户输入一个值,指出要显示多少行。然后,程序将显示相应行数的星号,其中第一行包括一个星号,第二行包括两个星号,依此类推。每一行包含的字符数等于用户指定的行数,在星号不够的情况下,在星号前面加上句号。
#include <iostream> using namespace std; int main() { int n; cout<<"Enter number of rows:" << endl; cin>>n; for(int i=n;i>0;i--) { for(int k=i-1;k>0;k--) { cout<<'.'; } for(int j=n-i+1;j>0;j--) { cout<<'*'; } cout<<endl; } return 0; }