問題1:C言語との違い

この問題を解くためには…
 → 応用編第1日目参照

probex1-1.(難易度:★)

以下のプログラムで、変数aの値を直接変えることなく、aの値に3を足したものを出力するように、プログラムを改造しなさい。

main.cpp
#include <iostream>

using namespace std;

int main(){
	int a = 7;
	int &n = a;
	cout << "a= " << a << endl;
	cout << "a= " << a << endl;

}
期待される実行結果
a = 7
a = 10

probex1-2.(難易度:★★)

以下のプログラムのchangeNum()関数の引数を、変数のポインタではなく、参照を与える形に変えて、同じ結果が得られるようにプログラムを変更しなさい。
main.cpp

#include <iostream>

using namespace std;

void changeNumber(int*);

int main(){
	int n = 5;
	cout << "変更前 : " << n << endl;
	changeNumber(&n);
	cout << "変更後 : " << n << endl;

}

void changeNumber(int* n){
	*n *= 2;	//	数値
}
実行結果
変更前 : 5
変更後 : 10

probex1-3.(難易度:★★)

以下のプログラムのswap()関数の引数を、変数のポインタではなく、参照を与える形に変えて、同じ結果が得られるようにプログラムを変更しなさい。

main.cpp
#include <iostream>

using namespace std;

void changeNumber(int*);

int main(){
	int n = 5;
	cout << "変更前 : " << n << endl;
	changeNumber(&n);
	cout << "変更後 : " << n << endl;

}

void changeNumber(int* n){
	*n *= 2;	//	数値
}
実行結果の例
a[0]=9  a[1]=7  a[2]=35  a[3]=91  a[4]=58
20以上50以下の数:1
80より大きい数:1
0以上10未満の数:2