C++ Primer Plus 第五章答案 循环和关系表达式

简介: 只有聪明人才能看见的摘要~( ̄▽ ̄~)~

 给个赞或者评论收藏不,亲亲

 

image.gif编辑

复习题

代码均编译运行通过

复习题

PS:Ctrl+k+c批量注释,Ctrl+k+u批量解注释

Shift+Alt选取竖行

//5.8
//1
输入条件循环在进入输入循环体之前评估测试表达式。如果条件最初为flase,则循
退出条件循环在处理循环体之后评估测试表达式,即使条件最初为flase,循环也会
for和while都是输入条件循环,do while是退出条件循环。
//2
将打印:
01234
//3
将打印:
0369
12
//4
将打印:
6
8
//5
将打印:
k = 8
//6
使用 *= 运算符最简单:
for (int num = 1; num <= 64; num *= 2)
cout << num << " ";
//7
将语句放在一个大括号中将形成一个复合语句或代码块。
//8
第一个语句将20赋给x,第二个语句将1赋给y
//9
cin>>ch将跳过空格,换行符,和制表符,其他两种格式将读取这些字符。

image.gif

编程练习

//第五章编程练习
#include<iostream>
#include<array>
#include<string>
#include<cstring>
using namespace std;
//practice 1
void p5_1()
{
  int a = 0;
  int b = 0;
  cout << "Enter two number to add all number between them:please enter the smaller one first:\n";
  cin >> a;
  cin >> b;
  int sum=0;
  for (a; a < b + 1; a++)
    sum += a;
  cout<<"The sum of them is: "<<sum<<endl;
}
//practice 2
const int Arsize = 101;
void p5_2()
{
  array<long double, Arsize>arr = {};
  arr[1] = arr[0] = 1.0;
  for (int i = 2; i < Arsize; i++)
    arr[i] = i * arr[i - 1];
  for (int i = 0; i < Arsize; i++)
    cout << i << "!=" << arr[i] << endl;
}
//practice 3
void p5_3()
{
  int num = 0;
  int sum = 0;
  while(1)
  {
    cout << "Enter a number (0 to exit):";
    cin >> num;
    if (num == 0)
      break;
    sum += num;
    cout << "Untill now,the sum of the number you inputed is: " << sum << endl;
  }
  cout << "Done!\n";
}
//practice 4
void p5_4()
{
  int investment = 100;
  double profit1 = 110;
  double profit2 = 105;
  int i;
  for(i=1;profit2<=profit1;i++)
  {
    profit1 += 10;
    profit2 += (profit2 * 0.05);
  }
  cout << "复利投资收入高于单利在第n年,n=" << i << endl;
  cout << "此时复利收入为" << profit2 << ",单利收入为" << profit1 << endl;
}
//practice 5
void p5_5()
{
  string month[12] = { "January", "February", "March", "April", "May", "June", 
    "July", "August", "Septempber", "October", "November", "December" };
  int sell[12] = {};
  int sum=0;
  for (int i=0;i<12;i++)
  {
    cout << month[i] << ": ";
    cin >> sell[i];
    sum += sell[i];
  }
  cout << "全年总销售量是:" << sum << endl;
}
//practice 6
void p5_6()
{
  string month[12] = { "January", "February", "March", "April", "May", "June",
    "July", "August", "Septempber", "October", "November", "December" };
  int sell[3][12];
  int sum[3] = {};
  int i, j;
  for (i = 0; i < 3; i++)
  {
    cout << "The sell on " << i+1 << " year:\n";
    for (j = 0; j < 12; j++)
    {
      cout << month[j] << ": ";
      cin >> sell[i][j];
      sum[i] += sell[i][j];
    }
    cout << "The sum on " << i + 1 << " year: " << sum[i] << endl;
  }
  cout << "三年销售总量:" << sum[0] + sum[1] + sum[2] << endl;
}
//practice 7
void p5_7()
{
  struct car 
  {
    string company;
    int time=0;
  };
  int num = 1;
  cout << "How many cars do you wish to catalog? ";
  (cin >> num).get();
  car * pc=new car[num];
  for(int i=0;i<num;i++)
  {
    cout << "Car #" << i + 1 << ":\n";
    cout << "Please enter the company: ";
    getline(cin,pc[i].company);
    cout << "Please enter the year made: ";
    (cin >> pc[i].time).get();
  }
  cout << "Here is your collection: \n";
  for(int i=0;i<num;i++)
    cout << pc[i].time << " " << pc[i].company << endl;
}
//practice 8
void p5_8()
{
  char word[20];
  unsigned int num_word = 0;
  cout << "Enter words(to stop,type the word done): " << endl;
  while (cin >> word)
    if (strcmp(word, "done"))
      num_word++;
    else break;
  cout << "You entered a total  of " << num_word << " words.";
}
//practice 9
void p5_9()
{
  string word;
  unsigned n_word = 0;
  cout << "Enter words(to stop,type the word done): " << endl;
  while (cin >> word)
    if (word!="done")
      n_word++;
    else break;
  cout << "You entered a total  of " << n_word << " words.";
}
//practice 10
void p5_10()
{
  int num = 0;
  cout << "Enter number of rows: ";
  cin >> num;
  for (int i = 1; i <= num; i++)
  {
    for (int j = num - i; j > 0; j--)
      cout << ".";
    for (int m = i; m > 0; m--)
      cout << "*";
    cout << endl;
  }
}
int main()
{
  p5_10();
  return 0;
}

image.gif


目录
相关文章
|
5月前
|
编译器 数据安全/隐私保护 C++
c++primer plus 6 读书笔记 第十三章 类继承
c++primer plus 6 读书笔记 第十三章 类继承
|
2月前
|
算法 编译器 程序员
C++ 11新特性之Lambda表达式
C++ 11新特性之Lambda表达式
17 0
|
4月前
|
安全 编译器 C++
C++一分钟之-泛型Lambda表达式
【7月更文挑战第16天】C++14引入泛型lambda,允许lambda接受任意类型参数,如`[](auto a, auto b) { return a + b; }`。但这也带来类型推导失败、隐式转换和模板参数推导等问题。要避免这些问题,可以明确类型约束、限制隐式转换或显式指定模板参数。示例中,`safeAdd` lambda使用`static_assert`确保只对算术类型执行,展示了一种安全使用泛型lambda的方法。
64 1
|
4月前
|
存储 安全 编译器
【C++入门 四】学习C++内联函数 | auto关键字 | 基于范围的for循环(C++11) | 指针空值nullptr(C++11)
【C++入门 四】学习C++内联函数 | auto关键字 | 基于范围的for循环(C++11) | 指针空值nullptr(C++11)
|
5月前
|
算法 编译器 C++
C++一分钟之—Lambda表达式初探
【6月更文挑战第22天】C++的Lambda表达式是匿名函数的快捷方式,增强函数式编程能力。基本语法:`[capture](params) -&gt; ret_type { body }`。例如,简单的加法lambda:`[](int a, int b) { return a + b; }`。Lambda可用于捕获外部变量(值/引用),作为函数参数,如在`std::sort`中定制比较。注意点包括正确使用捕获列表、`mutable`关键字和返回类型推导。通过实践和理解这些概念,可以写出更简洁高效的C++代码。
55 13
|
5月前
|
算法 程序员 编译器
C++的四类循环分享
C++的四类循环:Entry or Exit controlled, Ranged-based or For_each
|
5月前
|
C++
C++一分钟之-循环结构:for与while循环
【6月更文挑战第18天】在C++中,`for`循环适合已知迭代次数,如数组遍历;`while`循环适用于条件驱动的未知次数循环。`for`以其初始化、条件和递增三部分结构简洁处理重复任务,而`while`则在需要先检查条件时更为灵活。常见错误包括无限循环和逻辑错误,解决办法是确保条件更新和正确判断。了解两者应用场景及陷阱,能提升代码效率和可读性。
67 6
|
5月前
|
C++
C++语言的lambda表达式
C++从函数对象到lambda表达式以及操作参数化
|
5月前
|
C++
C++一分钟之-理解C++的运算符与表达式
【6月更文挑战第18C++的运算符和表达式构成了编程的基础,涉及数学计算、逻辑判断、对象操作和内存管理。算术、关系、逻辑、位、赋值运算符各有用途,如`+`、`-`做加减,`==`、`!=`做比较。理解运算符优先级和结合律至关重要。常见错误包括优先级混淆、整数除法截断、逻辑运算符误用和位运算误解。解决策略包括明确优先级、确保浮点数除法、正确使用逻辑运算符和谨慎进行位运算。通过实例代码学习,如 `(a &gt; b) ? &quot;greater&quot; : &quot;not greater&quot;`,能够帮助更好地理解和应用这些概念。掌握这些基础知识是编写高效、清晰C++代码的关键。
37 3
|
5月前
|
C++
c++primer plus 6 读书笔记 第十四章 C++中的代码重用
c++primer plus 6 读书笔记 第十四章 C++中的代码重用