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;
}