admin管理员组文章数量:1794759
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
编写程序,要求用户输入两个整数,程序将计算两个整数之间的所有整数和
#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.4Daphne 以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; }版权声明:本文标题:C++ Primer Plus(第6版)课后编程习题答案(自敲)——第五章 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686636857a89132.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论