C ++ Primer第5版演習の回答[一般リスト]:https://blog.csdn.net/Dust_Evc/article/details/114334124
1.1
Visual C ++プロジェクトで使用されるファイルの種類:https://docs.microsoft.com/zh-cn/cpp/build/reference/file-types-created-for-visual-cpp-projects?view = msvc-150
1.2
int main()
{
return -1;
}
1.3
#include <iostream>
int main()
{
std::cout << "Hello, World" << std::endl;
return 0;
}
1.4
#include <iostream>
int main()
{
std::cout << "Enter two numbers:" << std::endl;
int v1 = 0, v2 = 0;
std::cin >> v1 >> v2;
std::cout << "The product of " << v1 << " and " << v2
<< " is " << v1 * v2 << std::endl;
return 0;
}
1.5
#include <iostream>
int main()
{
std::cout << "Enter two numbers:" << std::endl;
int v1 = 0, v2 = 0;
std::cin >> v1 >> v2;
std::cout << "The product of ";
std::cout << v1;
std::cout << " and ";
std::cout << v2;
std::cout << " is ";
std::cout << v1 * v2;
std::cout << std::endl;
return 0;
}
1.6
違法。
**エラーエラーC2143:構文エラー: ";"がありません( "<<"の前)**
修正:余分なセミコロンを削除します。
std::cout << "The sum of " << v1
<< " and " << v2
<< " is " << v1 + v2 << std::endl;
1.7
/*
* 注释在这里嵌套
* /* 这里的嵌套是错的 */
*
*/
int main()
{
return 0;
}
エラーE0169:宣言が必要です。
1.8
3行目はエラーをコンパイルします。修正方法は引用符を追加することです。std :: cout << / * "* /" * / ";
出力:/ ** / * / / *
1.9
#include <iostream>
int main()
{
int sum = 0, i = 50;
while (i <= 100)
{
sum += i;
++i;
}
std::cout << sum << std::endl;
return 0;
}
1.10
#include <iostream>
int main()
{
int i = 10;
while (i >= 0)
{
std::cout << i << std::endl;
--i;
}
return 0;
}
1.11
#include <iostream>
void print_range(int lo, int hi)
{
if (lo > hi)
{
print_range(hi, lo);
return;
}
while (lo <= hi)
{
std::cout << lo << std::endl;
++lo;
}
}
int main()
{
int low, high;
std::cout << "please input two numbers : " << std::endl;
std::cin >> low >> high;
print_range(low, high);
return 0;
}
1.12
-100から100まで、合計の最終値は0です。
1.13
演習1.9:
#include <iostream>
int main()
{
int sum = 0;
for (int i = 50; i <= 100; ++i) sum += i;
std::cout << "the sum is: " << sum << std::endl;
return 0;
}
演習1.10:
#include <iostream>
int main()
{
for (int i = 10; i >= 0; --i)
std::cout << i << std::endl;
return 0;
}
演習1.11:
#include <iostream>
void print_range(int lo, int hi)
{
if (lo > hi)
{
print_range(hi, lo);
return;
}
for (int i = lo; i <= hi; ++i)
{
std::cout << i << std::endl;
}
}
int main()
{
int low, high;
std::cout << "please input two numbers : " << std::endl;
std::cin >> low >> high;
print_range(low, high);
return 0;
}
1.14
1. forループでは、初期化baiとループ制御変数の変更がステートメントヘッダーのzhi部分に配置されます。形式はより簡潔であり、ループの数がわかっている状況に特に適しています。
2. whileループでは、ループ制御変数の初期化は通常whileステートメントの前に配置され、ループ制御変数の変更は通常ループ本体に配置されます。形式はforステートメントほど簡潔ではありませんが、ループの数を予測するのが簡単でない状況に適しています(特定の条件を使用してループを制御します)。
3. 2つの形式にはそれぞれの利点がありますが、機能は同等であり、相互に変換できます。
1.15
一般的なコンパイラエラーには、構文エラー、タイプエラー、および宣言エラーが含まれます。
1.16
#include <iostream>
int main()
{
int sum = 0, value = 0;
while (std::cin >> value)
{
sum += value;
}
std::cout << sum << std::endl;
return 0;
}
1.18
#include <iostream>
int main()
{
int currVal = 0, val = 0;
if (std::cin >> currVal)
{
int cnt = 1;
while (std::cin >> val)
{
if (val == currVal)
{
++cnt;
}
else
{
std::cout << currVal << " occurs " << cnt << " times" << std::endl;
currVal = val;
cnt = 1;
}
}
std::cout << currVal << " occurs " << cnt << " times" << std::endl;
}
return 0;
}
1.19
#include <iostream>
void print_range(int lo, int hi)
{
if (lo > hi)
{
print_range(hi, lo);
return;
}
while (lo <= hi)
{
std::cout << lo << std::endl;
++lo;
}
}
int main()
{
int low, high;
std::cout << "please input two numbers : " << std::endl;
std::cin >> low >> high;
print_range(low, high);
return 0;
}
1.20
#include <iostream>
#include "Sales_item.h"
using std::cin;
using std::cout;
using std::endl;
int main()
{
for (Sales_item item; cin >> item; cout << item << endl);
return 0;
}
1.21
#include <iostream>
#include "Sales_item.h"
#include <stdexcept>
#include <string>
int main()
{
Sales_item item1, item2;
std::cin >> item1 >> item2;
if (item1.isbn() == item2.isbn())
{
std::cout << item1 + item2 << std::endl;
return 0;
}
else
{
std::cerr << "Data must refer to same ISBN"
<< std::endl;
return -1;
}
}
1.22
#include <iostream>
#include "Sales_item.h"
using namespace std;
#define OK 0;
int main()
{
Sales_item total;
if (cin >> total)
{
Sales_item trans;
while (cin >> trans)
{
if (total.isbn() == trans.isbn())
total += trans;
else
{
cout << "ISBN号为【" << total.isbn() << "】的书籍,总记录为:";
cout << total << endl;
total = trans;
}
}
cout << "ISBN号为【" << total.isbn() << "】的书籍,总记录为:";
cout << total << endl;
}
else
{
cerr << "No data?!" << endl;
return -1;
}
return OK;
}
1.23
#include <iostream>
#include "Sales_item.h"
int main()
{
Sales_item currItem, valItem;
if (std::cin >> currItem)
{
int cnt = 1;
while (std::cin >> valItem)
{
if (valItem.isbn() == currItem.isbn())
{
++cnt;
}
else
{
std::cout << currItem << " occurs " << cnt << " times " << std::endl;
currItem = valItem;
cnt = 1;
}
}
std::cout << currItem << " occurs " << cnt << " times " << std::endl;
}
return 0;
}
1.24
コードは上記と同じです。