1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ひたすらコードで覚えるC++【#4】

Last updated at Posted at 2024-10-31

はじめに

今回は4回目ということで、配列を中心に学んでいきます。

使用する環境

環境はVisual Studio 2022を使用します。

配列の値を出力する

このコードでは準備した配列に値を格納して表示します。配列を使うことで、多くのデータを簡単に扱うことができます。

#include <iostream>
using namespace std;

int main()
{
	int test[5];

	test[0] = 50;
	test[1] = 80;
	test[2] = 32;
	test[3] = 70;
	test[4] = 94;

	for (int i = 0; i < 5; i++) {
		cout << i + 1  << "番目の点数は" << test[i] << "です\n";
	}

	return 0;

}

配列の内容をソートする

このコードでは配列の要素を大きい順にソートしています。test[t]test[s]を比較しながら比較した要素のほうが大きい場合、要素を入れ替えます。

#include <iostream>
using namespace std;

int main()
{
	const int num = 10;
	int test[num];

	cout << num << "人の点数を入力してください。\n";
	for (int i = 0; i < num; i++) {
		cin >> test[i];
	}

	for (int j = 0; j < num - 1; j++) {
		for (int k = j + 1; k < num; k++) {
			if (test[k] > test[j]) {
				int tmp = test[k];
				test[k] = test[j];
				test[j] = tmp;
			}
		}
	}

	for (int m = 0; m < num; m++) {
		cout << m + 1 << "番目の人の点数は" << test[m] << "です。\n";
	}

	return 0;
}

多次元配列をつかう

多次元配列を使うことでより複数の情報を扱うこともできます。このコードを実行すると
1人につき2回のテスト結果を出力します。

#include <iostream>
using namespace std;

int main()
{
	const int sub = 2;
	const int num = 5;

	int test[sub][num];

	test[0][0] = 30;
	test[0][1] = 40;
	test[0][2] = 49;
	test[0][3] = 69;
	test[0][4] = 82;
	test[1][0] = 90;
	test[1][1] = 43;
	test[1][2] = 67;
	test[1][3] = 75;
	test[1][4] = 92;

	for (int i = 0; i < num; i++) {
		cout << i + 1 << "番目の人の1回目のテストの結果は" << test[0][i] << "点です。\n";
		cout << i + 1 << "番目の人の2回目のテストの結果は" << test[1][i] << "点です。\n";
	}

	return 0;
}

ポインタの演算

+演算子を使ってポインタの足し算を行っています。*(test + 1)を調べると、配列の2番目の要素の値を知ることができます。

#include <iostream>
#include <vector>
using namespace std;

int main() {
    int test[5] = { 80,60,55,22,75 };

    cout << "test[0]の値は" << test[0] << "です。\n";
    cout << "test[0]のアドレスは" << &test[0] << "です。\n";
    cout << "testの値は" << test << "です。\n";
    cout << "test+1の値は" << test + 1 << "です。\n";
    cout << "*(test+1)の値は" << *(test + 1) << "です。\n";

    return 0;
}

引数と配列

配列を関数の引数として使うプログラムです。5人の身長を入力することで平均身長が表示されます。

#include <iostream>
#include <vector>
using namespace std;

//avg関数の宣言
double avg(int  n[]);

int main() {
    int number[5];

    cout << "5人の身長を入力してください。\n";
    for (int i = 0; i < 5; i++) {
        cin >> number[i];
    }
    double ans = avg(number);
    cout << "5人の平均身長は" << ans << "です。\n";

    return 0;
}

//avg関数の定義
double avg(int n[]) {
    double sum = 0;

    for (int i = 0; i < 5; i++) {
        sum += n[i];
    }
    return sum / 5;
}

配列で文字列を扱う

配列に文字列を格納することができます。このコードでは配列str[]に記憶した文字列"Hello"の各文字の間に*記号を挿入して表示します。文字列を扱う場合は最後の文字が\0になります。

#include <iostream>
#include <vector>
using namespace std;

int main() {
	char str[] = "Hello";

	cout << "Hello\n";
	
	for (int i = 0; str[i] != '\0'; i++) {
		cout << str[i] << "*";
	}
	cout << '\n';

	return 0;
}

strlen()関数をつかう

C++の環境には、文字列を扱うための標準的な関数が添付されています。標準ライブラリと呼ばれ、strlen()関数では文字列の長さを求めることができます。

#include <iostream>
#include <vector>
using namespace std;

int main() {
	char str[100];

	cout << "文字列(英数字)を入力してください。\n";

	cin >> str;

	cout << "文字列の長さは" << strlen(str) << "です。\n";

	return 0;
}

参考文献

この記事は以下の情報を参考にして執筆しました。
やさしいC++ 第4版 (「やさしい」シリーズ)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?