admin管理员组

文章数量:1794759

C++ Primer Plus(第6版)课后编程习题答案(自敲)——第五章

C++ Primer Plus(第6版)课后编程习题答案(自敲)——第五章

C++ Primer Plus_第6版_第五章
  • 5.9.1
  • 5.9.2
  • 5.9.3
  • 5.9.4
  • 5.9.5
  • 5.9.6
  • 5.9.7
  • 5.9.8
  • 5.9.9
  • 5.9.10

5.9.1

编写程序,要求用户输入两个整数,程序将计算两个整数之间的所有整数和

#include <iostream> using namespace std; /* 编写程序,输入两个整数,计算并输出这两个整数之间的所有整数的和 */ int main() { int a, b; cout << "输入第一个整数(较小):"; cin >> a; cout << "输入第二个整数(较大):"; cin >> b; int sum = 0; for (;a <= b; a++) { sum += a; } cout << "和为:" << sum << endl; return 0; } 5.9.2

使用array对象和long double重新编写程序5.4,并计算100!的值 程序5.4

#include <iostream> 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 (int i = 0; i < ArSize; i++) std::cout << i << "! = " << factorials[i] << std::endl; return 0; } #include <iostream> #include <array> using namespace std; const int ArSize = 100; /* 使用array对象和long double重新编写5.4,并计算100!的值 */ int main() { 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; } 5.9.3

编写程序,用户输入数字,每次输入后,程序都将报告目前为止,所有输入的累计和,当用户输入0时,程序结束

#include <iostream> using namespace std; /* 编写程序,用户输入数字,每次输入后,程序将报告目前为止所有输入的数据和 输入0,程序结束 */ int main() { int a = 0; int sum = 0; do { cout << "输入数字:"; cin >> a; sum += a; cout << "目前所有数字和为:" << sum << endl; } while (a != 0); return 0; } 5.9.4

Daphne 以10%的单利投资了$100,即每年$10的利 Cleo 以5%的复利投资了$100,即每年都是以目前的资金增加5%的利 编写程序,计算多少年后Cleo能超过Daphne,并显示目前两人的资金

#include <iostream> using namespace std; /* Daphne 以10%的单利投资了$100,即每年$10的利 Cleo 以5%的复利投资了$100,即每年都是以目前的资金增加5%的利 编写程序,计算多少年后Cleo能超过Daphne,并显示目前两人的资金 */ int main() { int money_D = 100; double money_C = 100.0; int year = 0; while (money_D >= money_C) { money_D += 10; money_C *= 1.05; year++; } cout << "在" << year << "年以后,Daphne的钱少于Cleo" << endl; cout << "Daphne的钱为:$" << money_D << endl; cout << "Cleo的钱为:$" << money_C << endl; return 0; } 5.9.5

编写程序,输入全年中每个月的销售量(图书数量) 通过循环,使用初始化为月份字符串的char*数组(或者string对象数组)逐月进行提示 并强输入的数据存储在一个int数组中,然后程序计算数组中个元素的总数, 并报告这一年的输出情况

#include <iostream> #include <string> using namespace std; /* 编写程序,输入全年中每个月的销售量(图书数量) 通过循环,使用初始化为月份字符串的char*数组(或者string对象数组)逐月进行提示 并强输入的数据存储在一个int数组中,然后程序计算数组中个元素的总数, 并报告这一年的输出情况 */ int main() { string month[12] = {"一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"}; int num_books[12] = {0}; int sum = 0; for (int i = 0; i < 12; i++) { cout << "请输入" << month[i] << "月的销售量:"; cin >> num_books[i]; sum += num_books[i]; } cout << "这一年总共销售了" << sum << "本书" << endl; return 0; } 5.9.6

修改程序5,使用二维数组来存储输入——3年中的每个月的销售量, 程序将报告每年的销售量以及三年的总销售量

#include <iostream> #include <string> using namespace std; /* 修改程序5,使用二维数组来存储输入——3年中的每个月的销售量, 程序将报告每年的销售量以及三年的总销售量 */ int main() { string month[12] = {"一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"}; int num_books[3][12]; int sum[4] = {0}; for (int i = 0; i < 3; i++) { for (int j = 0; j < 12; j++) { cout << "请输入第" << i+1 << "年的" << month[j] << "月的销售量:"; cin >> num_books[i][j]; sum[i] += num_books[i][j]; } sum[3] += sum[i]; } for (int i = 0; i < 3; i++) { cout << "第" << i+1 << "年的销量为:" << sum[i] << endl; } cout << "三年总销量为:" << sum[3] << endl; return 0; } 5.9.7

编写名为car的结构体,包含生产商,生产年份。 用户输入多少辆汽车,随后使用new来创建一个由相应数量的car结构组成的动态数组,接下来,提示用户输入每辆车的生产商和年份信,最后输出每个结构的内容

#include <iostream> #include <string> using namespace std; /* 设计car结构体,存储有关汽车的信:生产商,生产年份 编写程序,询问用户有多少辆汽车 程序使用new来创建一个由相应数量的car数组 接下来,程序提示用户输入每辆车的生产商和生产年年份 */ struct Car { string brand; int year; }; int main() { cout << "请输入您需要的汽车数量:"; int num = 0; cin >> num; Car *c = new Car[num]; for (int i = 0; i < num; i++) { cout << "请输入第" << i+1 << "辆车的品牌:"; cin >> c[i].brand; cout << "请输入第" << i+1 << "辆车的生产年份:"; cin >> c[i].year; } for (int i = 0; i < num; i++) { cout << c[i].year << "生产了" << c[i].brand << endl; } return 0; } 5.9.8

编写程序,使用一个char数组和循环来每次读取一个单词,直到用户输入done为止,随后指出用户在done之前输入了多少个单词

#include <iostream> #include <cstring> using namespace std; /* 编写程序,使用char数组和循环来读取一个单词,直到用户输入done为止 该程序输出在done之前总共有多少个单词 */ int main() { char word[20]; int sum = 0; cout << "请输入单词,程序将给出done之前的单词数" << endl; cin >> word; while (strcmp(word, "done")) { sum++; cin >> word; } cout << "done前面共有" << sum << "个单词" << endl; return 0; } 5.9.9

修改程序8,使用string对象

#include <iostream> using namespace std; int main() { string s; int sum = 0; cout << "请输入单词,程序将给出done前面的单词数" << endl; cin >> s; while (s != "done") { sum++; cin >> s; } cout << "done前面共有" << sum << "个单词" << endl; return 0; } 5.9.10

编写程序,用户输入一个值,指出要显示多少行,然后程序显示对应行数的星号,每一行包含的字符数等于用户指定的行数,星号不够的情况下,在星号前面加上句号

#include <iostream> using namespace std; /* 编写程序,用户输入一个值,表示要显示多少行 程序将显示对应行数的星号,在星号不够的情况下,用句号代替 */ int main() { int num = 0; cout << "请输入要打印的行数:"; cin >> num; for (int i = 0; i < num; i++) { for (int j = num - i - 1; j >= 0; j--) { cout << "."; } for (int j = 0; j < i+1; j++) { cout << "*"; } cout << endl; } return 0; }

本文标签: 第五章课后习题答案Primer