第8講 関数(2)
第2話 1次元配列を送る
f()がデータを作成して、g()がデータを表示するという分業によって、
実行画面
1 7 4 0 9 4 8 8 2 4
を実現するプログラム例
#include<iostream> //入出力のために組み込む
using namespace std; //coutを使えるようにするために必要
void f(int x[]); //データ作成関数
void g(int x[]); //データ表示関数
int main() {
int a[10]; //配列の宣言
f(a); //配列の先頭アドレスを渡している
g(a); //配列の先頭アドレスを渡している
}
void f(int x[]) {
int i;
for (i = 0; i < 10; i++)x[i] = rand() % 10; //配列のデータ作成
}
void g(int x[]) {
int i;
for (i = 0; i < 10; i++)cout<< x[i] <<" "; //配列のデータ表示
cout << endl; //改行
}
これは、ポインタによって
#include<iostream> //入出力のために組み込む
using namespace std; //coutを使えるようにするために必要
void f(int *x); //データ作成関数
void g(int *x); //データ表示関数
int main() {
int *a = (int *)malloc(sizeof(int) * 10); //配列の宣言
f(a); //配列の先頭アドレスを渡している
g(a); //配列の先頭アドレスを渡している
}
void f(int *x) {
int i;
for (i = 0; i < 10; i++)x[i] = rand() % 10; //配列のデータ作成
}
void g(int *x) {
int i;
for (i = 0; i < 10; i++)cout<< x[i] <<" "; //配列のデータ表示
cout << endl; //改行
}
等とすることも出来ます。
次話の課題です。
@2次元配列に対応するポインタを作り、関数f()で2次元データを作成する
A関数g()でその2次元データを表示する
という条件下で実行画面が
1 7 4 0 9 4 8
8 2 4 5 5 1 7
1 1 5 2 7 6 1
4 2 3 2 2 1 6
8 5 7 6 1 8 9
2 7 9 5 4 3 1
となるプログラムを作って下さい。