第1章の演習
環境:CLion + MinGWの
1.1コンパイラをチェックし、それはファイルの命名規則を使用していることを決定するためにドキュメントを使用し、コンパイルし、2ページ目のメインプログラムを実行します
わずかに
1.2書き換えプログラム、それは-1を返します。-1の戻り値は、一般的にプログラムエラーとして識別されます。お使いのシステムが返され、メイン処理エラーを識別する方法を再コンパイルして、プログラムを実行するには、観察します
int main(){
return -1;
}
g++ main.cpp
a.exe
echo %ERRORLEVEL%
-1
コマンドライン操作した結果、ステータス取得を閲覧-1
1.3プログラムを書くこと世界、こんにちは標準出力に印刷
#include <iostream>
int main(){
std::cout << "Hello, World" << std::endl;
return 0;
}
私たちの1.4 +演算子は、2つの数の積を印刷する*乗算演算子をプログラミングする、2つの番号にかつらを使用しています
#include <iostream>
int main(){
int a = 0, b = 0;
std::cin >> a >> b;
std::cout << "The product of " << a << " and " << b
<< " is " << a * b << std::endl;
return 0;
}
1.5私達は長い文の上のすべての出力操作、独立した声明の中で、オペランドの各操作を印刷するプログラムを書き換えます
わずかに
1.6合法的に修正する方法ではない場合は、次のプログラムフラグメントは正当なものである説明
std::cout << "The sum of " << v1;
<< " and " << v2;
<< " is " << v1 + v2 << std::endl;
違法3行プラス第二の開始時とすることができるstd::cout
3つのステートメントを構成する、またはセミコロン、合成された文の終わりに最初の2行を除去し、
1.7が間違ってネストされたコメントが含まれてコンパイルし、エラーメッセージは、コンパイラを観察するために返されます
int main(){
/*
*/* incorrect comment*/
*
*/
return 0;
}
In function 'int main()':
error: 'incorrect' was not declared in this scope
*/* incorrect comment*/
間違ったコメント文を外部ノートとみなされるように区切り、ネストされたペアので、
次の出力文が合法であることを1.8ポイントアウト
std::cout << "/*";
std::cout << "*/";
std::cout << /*"*/" */;
std::cout << /*"*/" /* "/*" */;
(1)法律上、印刷/ *
(2)法的、印刷* /
(3)不正、同等にstd::cout << "*/;
(4)と等価な、法的std::cout << " /* ";
/印刷*
ループ整数50 100に添加しながら1.9プログラミング、
#include <iostream>
int main(){
int i = 50, sum = 0;
while(i <= 100){
sum += i;
i += 1;
}
std::cout << sum << std::endl;
return 0;
}
( - )減少値を達成するために、1を超え1.10 ++演算子のオペランドの値が増加することに加えて、デクリメント演算子があります。ループ内の整数の降順で印刷するオペレータを使用して、プログラミングを減少10-0
#include <iostream>
int main(){
int i = 10;
while(i >= 0){
std::cout << i << " ";
i --;
}
std::cout << std::endl;
return 0;
}
二つの整数をユーザに促しプログラムは、二つの整数指定した範囲内の全ての整数をプリントアウト1.11書き込み
#include <iostream>
int main(){
int low, high;
std::cout << "Enter two numbers: ";
std::cin >> low >> high;
if(low > high){ // 若用户按降序输入, 则调换两个变量的值
int tmp = low;
low = high;
hight = tmp;
}
int i = low;
while(i <= high){
std::cout << i << " ";
i ++;
}
std::cout << std::endl;
return 0;
}
1.12次のサイクルでは何の機能のために完了していますか?最終値の合計は何ですか?
int sum = 0;
for(int i = -100; i <= 100; ++i)
sum += i;
0の最終値の和、整数の和との間の[-100、100]の
1.13セクション内のすべての演習をやり直すforループを使用して1.4.1
わずかに
forループとwhile 1.14比較、どのような長所と短所の二つの形式?
サイクル数は、既知のより単純で理解しやすいループのために使用され、サイクルの未知の数または特定の条件制御周期が使用され、より柔軟な一方
1.16プログラミング、CINからの数字の組を読み出し、出力します
#include <iostream>
int main(){
int val = 0, sum = 0;
while(std::cin >> val){
sum += val;
}
std::cout << sum << std::endl;
return 0;
}
1.17すべての入力値が等しい場合、プログラムが出力されます何のこのセクション?重複する値がない場合、出力は次のようになりますか?
#include <iostream>
int main(){
int val = 0, cur = 0, cnt = 1;
if(std::cin >> val){
while(std::cin >> cur){
if(cur == val){
cnt += 1;
}else{
std::cout << val << " occurs " << cnt <<" times." << std::endl;
val = cur; // reset val, count
cnt = 1;
}
}
std::cout << val << " occurs " << cnt <<" times." << std::endl;
}
return 0;
}
すべての入力値と同様に
1 1 1 1 1 1
^D
1 occurs 6 times.
繰り返しなし値なし
1 2 3 4 5
1 occurs 1 times.
2 occurs 1 times.
3 occurs 1 times.
4 occurs 1 times.
^D
5 occurs 1 times.
1.18同上。
実際に修正1.19プロシージャセクション1.4.1は、それが最初の数はケースの第二の数よりも少ないユーザ入力を処理できるように書かれました
1.11運動プログラムは、すでにこの機能を持っています
1.20は、ヘッダファイルSales_item.hの公式ウェブサイトでコピーして、本のセット販売記録を読み取るプログラムを作成するためにそれを使用して、各レコードを標準出力に出力されます
# include <iostream>
# include "Sales_item.h"
using namespace std;
int main()
{
Sales_item book;
while(cin >> book){
cout << book << endl;
}
return 0;
}
1.21プログラミング、同じ2つのISBN Sales_itemオブジェクトを読み出し、その出力
# include <iostream>
# include "Sales_item.h"
using namespace std;
int main()
{
Sales_item book1, book2;
cin >> book1 >> book2;
if(book1.isbn() == book2.isbn()){
cout << book1 + book2 << endl;
return 0;
}else{
cout << "The books' ISBNs must be the same." << endl;
return -1;
}
}
1.22プログラミング、同じ複数ISBN Sales_itemオブジェクトを読み出し、その出力
# include <iostream>
# include "Sales_item.h"
using namespace std;
int main()
{
Sales_item book, total;
if(cin >> total){
while(cin >> book){
if(book.isbn() == total.isbn()){
total += book;
}else{
cout << "The books' ISBNs must be the same." << endl;
return -1;
}
}
cout << total << endl;
return 0;
}else{
cout << "No data." << endl;
return -1;
}
}
1.23書き込み各ISBNための販売記録と統計の数を読み込むプログラムは、複数の販売レコードがあります
# include <iostream>
# include "Sales_item.h"
using namespace std;
int main()
{
Sales_item total;
if(cin >> total){
Sales_item currBook;
while(cin >> currBook){
if(currBook.isbn() == total.isbn())
total += currBook;
else{
cout << total << endl;
total = currBook;
}
}
cout << total << endl;
return 0;
}else{
cerr << "No data" << endl;
return -1;
}
}