C ++ Primer第5版演習の回答[第1章]

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

コードは上記と同じです。

おすすめ

転載: blog.csdn.net/Dust_Evc/article/details/114280415