อาเรย์ 1 มิติ

Array หมายถึงลำดับของข้อมูลประเภทเดียวกันที่แต่ละข้อมูลสามารถเข้าถึงได้โดยใช้หมายเลขลำดับโดยเริ่มนับจากลำดับศูนย์

Warning

to be continued...

การประกาศ

รูปแบบคำสั่งประกาศ

ประเภท ตัวแปร[จำนวนสมาชิก];

ตัวอย่างการประกาศตัวแปร x สำหรับเก็บข้อมูลประเภทจำนวนเต็ม 6 จำนวน

int x[6];

ตัวอย่างคำสั่งในการประกาศอาเรย์ 1 มิติสำหรับข้อมูลประเภทต่างๆ

 1#include <bits/stdc++.h>
 2
 3int main() {
 4   double a[6];
 5   int b[5] = { 2, 4, 7, 9, 11 };
 6   char c[3] = { 'A', 'B', 'A' };
 7  
 8   auto d = { 2, 4, 7, 9, 11 };
 9   auto names = { u8"มานะ", u8"มานี", u8"ปิติ", u8"ชูใจ" };
10  return 0;
11}

ข้อมูลเพิ่มเติมเกี่ยวกับประเภทของข้อมูล ดูเพิ่มเติมได้ที่ ชนิดข้อมูลพื้นฐาน

การเข้าถึง

รูปแบบคำสั่งเพื่อเข้าถึงข้อมูลในอาเรย์ 1 มิติ

ตัวแปร[ลำดับ];

โดย ลำดับ เป็นตัวเลขจำนวนเต็มระบุตำแหน่งของข้อมูลที่ต้องการเข้าถึงโดยลำดับแรกเป็นเลข 0

 1#include <bits/stdc++.h>
 2
 3using namespace std;
 4
 5int main() {
 6
 7  int x[6] = { 0, 1, 2, 3, 4, 5 };
 8  double a[6];
 9  a[0] = 3.45;
10  a[1] = 3.65;
11  a[2] = a[0] + 0.15;
12  a[x[3]] = a[0]*x[2];
13
14  a[4] = a[3] - a[2];
15  a[5] = a[4] - a[3];
16
17  cout << a[2] << endl;
18  cout << a[1] << ", " << a[2] << ", " << a[3] << endl;
19  return 0;
20}

การรับข้อมูล

รูปแบบที่ ๑

โจทย์ให้รับข้อมูลตามจำนวนที่ระบุไว้ชัดเจนในโจทย์ เช่น

จงเขียนโปรแกรมเพื่อหาผลรวมของจำนวนเต็ม 4 จำนวนที่ผู้ใช้กรอกแยกบรรทัดละจำนวน

Input

Output

11

22

33

44

110

101

212

323

434

1070

คำตอบ

 1#include <bits/stdc++.h>
 2
 3using namespace std;
 4
 5int main() {
 6  int a[4];
 7  cin >> a[0] >> a[1] >> a[2] >> a[3];
 8  cout << a[0] + a[1] + a[2] + a[3] << endl;
 9  return 0;
10}

รูปแบบที่ ๒

โจทย์ให้รับข้อมูลตามจำนวนที่ระบุไว้ในแต่ละกรณี เช่น

จงเขียนโปรแกรมเพื่อแสดงตัวเลขในลำดับของจำนวนเต็มที่ผู้ใช้กรอกทั้งหมด โดยบรรทัดแรกผู้ใช้จะระบุจำนวนเต็ม n ที่จะกรอก และ n บรรทัดถัดมาเป็นจำนวนเต็มในลำดับหนึ่งบรรทัดต่อหนึ่งจำนวน และบรรทัดสุดท้ายเป็นจำนวนเต็มระบุตำแหน่งในลำดับที่ต้องการให้แสดง

Input

Output

3

11

22

33

0

11

5

111

222

333

444

555

1

222

คำตอบ

 1#include <bits/stdc++.h>
 2
 3using namespace std;
 4
 5int main() {
 6  int n, i;
 7  cin >> n;
 8  int a[n];
 9  for (i=0; i<n; i++) {
10    cin >> a[i];
11  }
12  cin >> i;
13  cout << a[i];
14  return 0;
15}

ฟังก์ชันและอาเรย์ 1 มิติ

ตัวอย่างการประกาศฟังก์ชันเพื่อรับอาเรย์ 1 มิติ พร้อมระบุจำนวนสมาชิก

 1#include <bits/stdc++.h>
 2
 3using namespace std;
 4
 5float sum(int a[], int size) {
 6  float sum = 0;
 7  for (auto i=0; i<size; i++) {
 8    sum += a[i];
 9  }
10  return sum;
11}
12
13void print(string names[], int size) {
14  for (auto i=0; i<size; i++) {
15    cout << names[i] << endl;
16  }
17}
18
19int main() {
20
21   int b[5] = { 2, 4, 7, 9, 11 };
22   cout << sum(b, 5) << endl;
23
24   string names[4] = { u8"มานะ", u8"มานี", u8"ปิติ", u8"ชูใจ" };
25   print(names, 4);
26
27  return 0;
28}

vector

การใช้ vector แทนอาเรย์ 1 มิติ

 1#include <bits/stdc++.h>
 2
 3using namespace std;
 4
 5float sum(vector<int> a) {
 6  float sum = 0;
 7  for (auto i=0; i<a.size(); i++) {
 8    sum += a[i];
 9  }
10  return sum;
11}
12
13float sum2(vector<int> a) {
14  float sum = 0;
15  for (auto x : a) {
16    sum += x;
17  }
18  return sum;
19}
20
21float sum3(vector<int> a) {
22  float sum = 0;
23  for (auto i=a.begin(); i != a.end(); i++) {
24    sum += *i;
25  }
26  return sum;
27}
28
29float sum4(vector<int> a) {
30  float sum = 0;
31  auto i = a.begin();
32  while (i != a.end()) {
33    sum += *i;
34    i++;
35  }
36  return sum;
37}
38
39void print(vector<string> names) {
40  for (auto name : names) {
41    cout << setw(20) << name ;
42  }
43  cout << endl;
44}
45
46int main() {
47
48   vector<int> b { 2, 4, 7, 9, 11 };
49   cout << sum(b) << endl;
50   
51   for (auto i=1; i<=10; i+=2) {
52     b.push_back(i);
53   }
54   cout << sum2(b) << endl;
55   cout << sum3(b) << endl;
56   cout << sum4(b) << endl;
57
58   vector<string> names { u8"มานะ", u8"มานี", u8"ปิติ", u8"ชูใจ" };
59   print(names);
60
61  return 0;
62}