「C ++入門」の章の第五文の1から10までの演習

練習5.1 NULL文とは何ですか?場合は空文?

構文は声明を必要としますが、論理的に必要としない、彼らは空のステートメントを使用することができたときに空のステートメントは、何のアクション文ではありません。

練習5.2ブロックとは何ですか?何をするときのブロックに使用されるのですか?

ブロックは、ステートメントの構文が必要な場合は、中括弧で囲まれた文と宣言の順序であるが、論理ステートメントのセットを必要とし、あなたはブロックを使用することができます。

コンマ演算子のセクション1.4.1書き換えで練習5.3 whileサイクル、それが必要なブロックは、読みやすくするために、コードを書き換えた後に観察または減少しなくなりました。

while (val <= 10)
    sum += val, ++val;

私は、コードは本当に簡単になっていると思いますが、可読性が低下します。

練習5.4次の例では、問題がある場合は、それを変更しようとすると、意味を説明します。

(a) while (string::iterator iter != s.end()) { /* . . . */ }
(b) while (bool status = find(word)) { /* . . . */ }
		if (!status) { /* . . . */ }

()文はイテレータを使用したいようだiterトラバースにs、しかしイテレータがされた場合にiter書かれた中で定義されたwhile判断条件記述、各サイクルを再定義しますiter明らかに間違っています、。正しい表現をすべきでiter定義されたwhile外部ループ。

(b)は、while文とif文は、独立の2つのコード・ブロックであり、定義while変数のステートメントがstatusされていないifアクセス、正しい表現されるべきでstatus定義されたwhileループ、または前にif取得するステートメントwhile裁判官にサイクル。

else文は、文字の等級の要件を達成するために数を変換する場合は使用して、自分自身のプログラム5.5書き込みを行使する。

#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
	int grade;
	vector<string> souce = { "F", "D", "C", "B", "A", "A++" };
	while(cin >> grade){
		string lettergrade;
		if (grade < 60) {
			lettergrade = souce[0];
		}
		else {
			lettergrade = souce[(grade - 50) / 10];
		}
		if (grade == 100 || grade < 60) {
		}
		else {
			if (grade % 10 > 7) {
				lettergrade += "+";
			}
			else if (grade % 10 < 3) {
				lettergrade += "-";
			}
		}
		cout << lettergrade << endl;
	}
	return 0;
}

練習5.6は、手続きの問題、代わりの条件演算子の使用に書き換えif else声明。

#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
	int grade;
	vector<string> souce = { "F", "D", "C", "B", "A", "A++" };
	while(cin >> grade){
		string lettergrade = grade < 60 ? souce[0] : souce[(grade - 50) / 10];
		lettergrade += (grade == 100 || grade < 60) ? "" : (grade % 10 > 7) ? "+" : (grade % 10 < 3) ? "-" : "";
		cout << lettergrade << endl;
	}
	return 0;
}

練習5.7は、次のコードスニペットのエラーを書き換えます。

(a) if (ival1 != ival2) 
		ival1 = ival2
    else 
    	ival1 = ival2 = 0;
(b) if (ival < minval) 
		minval = ival;
    	occurs = 1;
(c) if (int ival = get_value())
    	cout << "ival = " << ival << endl;
    if (!ival)
    	cout << "ival = 0\n";
(d) if (ival = 0)
    	ival = get_value();

以下ival1 = ival2文の後に() ';'

(b)にすべきminval = ival;occurs = 1;中括弧の周り。

©れるべきif(!ival)変更else

(d)はif (ival = 0)交換する必要がありますif (ival == 0)

「ハングしているどのような練習5.8 else」?C ++言語をどのように扱うかelse句?

C ++の規定、それはまだ最も近いものと一致した場合に、他の距離。

練習5.9書き込みの一連の使用するプログラムifの統計情報から文cinのテキストを読んでどのように多くの母音を。

#include<iostream>
using namespace std;
int main()
{
	char ch;
	int sum_a = 0, sum_e = 0, sum_i = 0, sum_o = 0, sum_u = 0;
	int vowelcnt = 0;
	while(cin >> ch){
		if (ch == 'a') {
			++sum_a;
			++vowelcnt;
		}
		else if(ch == 'e'){
			++sum_e;
			++vowelcnt;
		}
		else if (ch == 'i') {
			++sum_i;
			++vowelcnt;
		}
		else if (ch == 'o') {
			++sum_o;
			++vowelcnt;
		}
		else if (ch == 'u') {
			++sum_u;
			++vowelcnt;
		}
	}
	cout << "acnt is: " << sum_a << endl;
	cout << "ecnt is: " << sum_e << endl;
	cout << "icnt is: " << sum_i << endl;
	cout << "ocnt is: " << sum_o << endl;
	cout << "ucnt is: " << sum_u << endl;
	cout << "vowelcnt is: " << vowelcnt << endl;
	return 0;
}

大文字で母音は、カウントされません場合は、次の練習5.10母音の統計が問題になる前に、当社のプログラムを達成するために存在します。プログラムは、両方の統計小文字の母音、また、新しい出会い「A」と「A」である統計大文字の母音は、インクリメントされなければならない書くaCnt値を、というように。

#include<iostream>
using namespace std;
int main()
{
	char ch;
	int sum_a = 0, sum_e = 0, sum_i = 0, sum_o = 0, sum_u = 0;
	int vowelcnt = 0;
	while(cin >> ch){
		switch (ch)
		{
		case 'a':
		case 'A':
			++sum_a;
			++vowelcnt;
			break;
		case 'e':
		case 'E':
			++sum_e;
			++vowelcnt;
			break;
		case 'i':
		case 'I':
			++sum_i;
			++vowelcnt;
			break;
		case 'o':
		case 'O':
			++sum_o;
			++vowelcnt;
			break;
		case 'u':
		case 'U':
			++sum_u;
			++vowelcnt;
			break;
		default:
			break;
		}
	}
	cout << "acnt is: " << sum_a << endl;
	cout << "ecnt is: " << sum_e << endl;
	cout << "icnt is: " << sum_i << endl;
	cout << "ocnt is: " << sum_o << endl;
	cout << "ucnt is: " << sum_u << endl;
	cout << "vowelcnt is: " << vowelcnt << endl;
	return 0;
}
公開された276元の記事 ウォン称賛21 ビュー40000 +

おすすめ

転載: blog.csdn.net/qq_40758751/article/details/104099682