อาเรย์ 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}