Phần mềm

Bài tập mảng 1 chiều c++ có lời giải

Xin chào các bạn, hôm nay phanmemdownload.com.vn sẽ cùng các bạn giải một số Bài tập mảng 1 chiều c++ có lời giải. Hiện tại chủ đề này không cho phép sử dụng hàm con nên đoạn code sẽ được thực thi hoàn toàn trong hàm main.

Nếu bạn chưa có kiến ​​thức cơ bản về mảng 1 chiều, hãy đọc trước bài học Mảng 1-D trong C / C ++ để nắm kiến ​​thức.

Nếu bạn muốn thực hành các bài tập lập trình được đánh giá đúng sai, hãy thực hành tại phần thực hành mã.

Bài tập mảng 1 chiều c++ có lời giải

Đây là bài tập tổng hợp về kiến ​​thức mảng 1 chiều.

Giải đề thi nhập môn tin học Đại học Điện LựcĐề thi nhập môn mảng 1 chiều

Bài tập mảng 1 chiều như sau:

Nhập từ bàn phím một mảng số nguyên gồm n phần tử.

  1. Tính trung bình cộng của các số lẻ ở vị trí chẵn
  2. Tìm số lớn nhất trong mảng đã nhập
  3. Tìm vị trí của các số nhỏ nhất trong mảng
  4. Đếm số ô vuông trong mảng
  5. Hiển thị các số nguyên tố trong mảng lên màn hình
  6. Thay các phần tử âm trong mảng được bằng 0
  7. Xóa các phần tử âm trong mảng
  8. Sắp xếp mảng đã nhập theo thứ tự tăng dần

Với bài tập mảng 1 chiều này, do em không sử dụng ma trận sao để làm câu 6 và 7. Hai câu 6 và 7 có mâu thuẫn gì. Vì vậy, khi chạy code, bạn cần lưu ý:

  • Comment phần 6 nếu bạn muốn chạy phần 7, và ngược lại.
  • Bỏ ghi chú như được mô tả trong mã để xem kết quả thay đổi Giải pháp

Bài tập mảng 1 chiều c++ có lời giải

Trong đoạn mã dưới đây, tất cả các phần đều có sẵn. Nhận xét giải thích mã rõ ràng. Các phần cũng đã được phân chia theo một bố cục rõ ràng. Bạn có thể sử dụng mã này như một giải pháp tham khảo cho bài tập trên.

Đây là lời giải đề thi tuyển sinh vào môn tin học – bài tập mảng 1 chiều sử dụng ngôn ngữ C.

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

 

#include <stdio.h>

#include <math.h> // Sử dụng sqrt

const int MAX = 100000;

int arr [MAX];

 

int main () {

int n;

printf (“ n So sánh n =”);

scanf (“% d”, & n);

 

// Đầu vào

for (int i = 0; i <n; ++ i) {

printf (“ nNhap a [% d] =”, i);

scanf (“% d”, & arr [i]);

}

/ * ———————————— * /

// 1. Kết tinh trung bình so le

;

int sum = 0

int count = 0;

for (int i = 1; i <n; i + = 2) {

if (arr [i]% 2 == 1) {

++ count;

sum + = arr [i];

}

}

printf (“ nAverage =% f”, (float) sum / count);

 

/ * ———————– * /

// 2. Tim ban tot nhat tren the gioi vua input

int maxNum = arr [0];

for (int i = 1; i <n; ++ i) {

if (arr [i]> maxNum) maxNum = arr [i];

}

printf (“ nTên cuối:% d”, maxNum);

 

/ * ———————– * /

// 3. Tìm các phép so sánh trong

2 bước:

// 1. Tìm giá trị nhỏ nhất minNum.

// 2. In ra tất cả các giá trị có value = minNum

// Trả về: Value = value + 1

 

// Tìm

giá trị nhỏ nhất int minNum = arr [0];

for (int i = 1; i <n; ++ i) {

if (arr [i] <minNum) minNum = arr [i];

}

 

// In ra

giá trị nhỏ nhất printf (“ n Giá trị nhỏ nhất là:”);

for (int i = 0; i <n; ++ i) {

if (arr [i] == minNum) printf (“% d”, i + 1);

}

 

/ * ———————————— * /

// 4. Định nghĩa các phương thức chính xác trong

/ / Phương pháp so sánh có thể bằng giá trị gốc như: 1, 4, 9, …

int scp = 0;

phao rs;

for (int i = 0; i <n; ++ i) {

rs = sqrt (arr [i]);

if (rs == (int) rs) ++ scp;

}

printf (“ nCó% d so với phương thức đúng!”, scp);

 

/ * ———————– * /

// 5. Hiển thị tất cả các số nguyên

chỉ là 1 và nó đầy.

// So sánh số nguyên nhỏ nhất là 2

printf (“ nSo sánh số nguyên là:”);

bool snt;

for (int i = 0; i <n; i ++) {

// Kiểm tra xem a [i] có phải được so sánh với số nguyên hay không?

//

nếu no chia cho số trong [2, a [i]] -> không phải so sánh số nguyên với

snt = true;

for (int j = 2; j <arr [i]; ++ j) {

if (arr [i]% j == 0) snt = false;

}

if (arr [i]> = 2 && snt == true) printf (“% d”, arr [i]);

}

 

/ * ———————- * /

// 6. Thay thế các thành phần trong carry = 0.

for (int i = 0; i <n; + + i) {

if (arr [i] <0) arr [i] = 0;

}

// Nếu bạn muốn xem sự thay đổi, thì comment

// printf (“ nSau khi thay thế văn bản:”);

// for (int i = 0; i <n; ++ i) {

// printf (“% d”, arr [i]);

//}

 

// 7. Xóa tất cả các chức năng có trong

trang // Nếu bạn muốn xem kết quả của phần này thì hãy comment ở phần tiếp theo.

// Điều này sẽ thay đổi trạng thái của giai đoạn đầu tiên ^^

for (int i = 0; i <n; ++ i) {

if (arr [i] <0) {

for (int j = i; j <n- 1; j ++) {

arr [j] = arr [j + 1];

}

–n;

}

}

// Nếu bạn muốn xem thay đổi thì có thể comment

// printf (“ nPut sau khi xoá:”);

// for (int i = 0; i <n; ++ i) {

// printf (“% d”, arr [i]);

//}

 

/ * ———————– * /

// 8. Sap xep da;

int tg

for (int i = 0; i <n-1; ++ i) {

for (int j = i + 1; j <n; ++ j) {

if (arr [i]> arr [j]) {

/ / Trả về

tg = arr [i];

arr [i] = arr [j];

arr [j] = tg;

}

}

}

// Nếu bạn muốn xem nó, hãy comment

printf (“ n Bạn sẽ thấy:”);

for (int i = 0; i <n; ++ i) {

printf (“% d”, arr [i]);

}

}

 

Một số bài tập mảng 1 chiều khác

Nhập và xuất mảng 1 chiều

Nhập một dãy số nguyên. Hiển thị dãy số đó trên màn hình.

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

 

#include <stdio.h>

#include <conio.h>

main ()

{

int a [50];

int i, n;

printf (“So tien:”);

scanf (“% d”, & n);

for (i = 0; i <n; i ++)

{

scanf (“% d”, & a [i]);

}

printf (“ nInput vua:”);

for (i = 0; i <n; i ++)

{

printf (“% 5d”, a [i]);

}

getch ();

}

 

Bài tập in các số nguyên tố trong mảng

Nhập một dãy số nguyên xuất ra màn hình các số nguyên tố trong mảng, vị trí của các số đó trong mảng.

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

 

#include <stdio.h>

#include <conio.h>

main ()

{

int a [50];

int i, n, j, kt;

printf (“So tien:”);

scanf (“% d”, & n);

for (i = 0; i <n; i ++)

{

scanf (“% d”, & a [i]);

}

printf (“ nSố nguyên và số nguyên là:”);

for (i = 0; i <n; i ++)

{

kt = 0;

for (j = 2; j <= a [i] / 2; j ++)

{

if (a [i]% j == 0)

kt = 1;

}

if (kt == 0)

printf (“ nso nguyen to% d vi tri% d in”, a [i], i);

}

getch ();

}

 

Bài tập sắp xếp mảng, tìm trung bình cộng

Nhập dãy số nguyên có không quá 50 phần tử, in số vừa nhập

ra màn hình Hiển thị số lớn nhất trong mảng và vị trí của nó trong dãy.

Sắp xếp một dãy số theo giá trị của các phần tử theo

Tổng tăng dần và trung bình cộng của các số trong dãy.

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

 

#include <stdio.h>

#include <conio.h>

main ()

{

int a [50];

int i, n, tg, max, j, s = 0;

printf (“kiểu nhập:”);

scanf (“% d”, & n);

for (i = 0; i <n; i ++)

{

scanf (“% d”, & a [i]);

}

max = a [0];

for (i = 1; i <n; i ++)

{

if (a [i]> max)

{

max = a [i];

}

}

printf (“ nSo long =% d”, max);

printf (“ n giá trị cuối cùng trong ngày là:”);

for (i = 0; i <n; i ++)

{

if (a [i] == max)

{

printf (“% 6d”, i + 1);

}

}

// ngày sap xep

cho (i = 0; i <n-1; i ++)

cho (j = i + 1; j <n; j ++)

{

if (a [i]> a [j])

{

tg = a [i];

a [i] = a [j];

a [j] = tg;

}

}

printf (“ nday so sau khi kiem tra la:”);

cho (i = 0; i <n; i ++)

{

printf (“% 6d”, a [i]);

}

// So sánh thu gọn và trung bình trong ngày

for (i = 0; i <n; i ++)

{

s = s + a [i];

}

printf (“ nTất cả các kết quả phù hợp trong ngày là:% d”, s);

printf (“ nTrung bình của các so sánh hàng ngày:% f”, (float) s / n);

getch ();

}

 

Bài tập chèn phần tử vào mảng

Nhập dãy n số nguyên (0 <n <30), in số vừa nhập

ra màn hình Hiển thị các số chẵn và vị trí của chúng trong mảng

Sắp xếp dãy số theo giá trị của các phần tử theo thứ tự giảm dần .

Chèn số X vào dãy sao cho sau khi chèn giá trị các phần tử vẫn giảm dần (nhập x từ bàn phím

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

 

#include <stdio.h>

#include <conio.h>

main ()

{

int a [30], i, j, n, tg, v, x;

printf (“Nhập kiểu:”);

scanf (“% d”, & n);

for (i = 0; i <n; i ++)

{

scanf (“% d”, & a [i]);

}

// hiển thị ngày và giờ trong ngày,

printf (“nhap la:”);

for (i = 0; i <n; i ++)

{

printf (“% 5d”, a [i]);

}

// xuất ra màn hình các số và giá trị trong ngày

printf (“ nCác so sánh trong ngày và các số trong ngày là:”);

for (i = 0; i <n; i ++)

{

if (a [i]% 2 == 0)

{

printf (“ nso% d get% d trong day”, a [i], i + 1);

}

}

// so sánh

for (i = 0; i <n-1; i ++)

for (j = i + 1; j <n; j ++)

{

if (a [i)] <a [j])

{

tg = a [i];

a [i] = a [j];

a [j] = tg;

}

}

printf (“ nNgay so sau:”);

for (i = 0; i <n; i ++)

{

printf (“% 5d”, a [i]);

}

// chèn x vào ngày tháng để sau khi chèn giá trị của các phần tử đầu vào (x vào phim)

printf (“ nNhập giá trị đầu vào X:”);

scanf (“% d”, & x);

v = 0;

i = 0;

while (a [i]> x)

{

i ++;

}

v = i;

for (i = n-1; i> = v; i–)

{

a [i + 1] = a [i];

}

a [v] = x;

printf (“ n Day sau khi insert:”);

for (i = 0; i <n + 1; i ++)

{

printf (“% 5d”, a [i]);

}

getch ();

}

 

 

Bài tập tính tổng dương, bỏ số âm

Nhập một dãy số thực có không quá 50 phần tử, hiển thị tổng các số dương trong Dãy.

Xóa tất cả các số âm trong dãy.

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

 

#include <stdio.h>

#include <conio.h>

main ()

{

int i, j, n, a [50], s = 0;

printf (“Kiểu đầu vào”);

scanf (“% d”, & n);

for (i = 0; i <n; i ++)

{

scanf (“% d”, & a [i]);

}

for (i = 0; i <n; i ++)

{

if (a [i]> 0)

{

s = s + a [i];

}

}

printf (“Tất cả các trận đấu trong ngày là:% d”, s);

// Xóa tất cả các số trong ngày

for (i = 0; i <n; i ++)

{

if (a [i] <0)

{

for (j = i; j <n-1; j ++)

{

a [j] = a [j + 1];

}

n = n-1;

}

}

printf (“ n Ngày sau khi xóa là:”);

for (i = 0; i <n; i ++)

{

printf (“% 5d”, a [i]);

}

getch ();

}

 

Bài tập tổng hợp

Nhập dãy số nguyên có không quá 50 phần tử và hiển thị giá trị trung bình cộng của các số chia hết cho 3 trong dãy. Chèn chữ số X vào vị trí thứ k trong dãy (x, k nhập từ bàn phím)

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

 

#include <stdio.h>

#include <conio.h>

main ()

{

int a [50];

int i, n, t = 0, k, x, d = 0;

printf (“Nhập kiểu:”);

scanf (“% d”, & n);

for (i = 0; i <n; i ++)

{

scanf (“% d”, & a [i]);

}

// in ra màn hình trung bình cộng của các phép so sánh chia hết cho 3

for (i = 0; i <n; i ++)

{

if (a [i]% 3 == 0)

{

t = t + a [i];

d = d + 1;

}

}

if (d == 0)

{

printf (“khong so het 3 trong day”);

}

else

{

printf (“TBC so het 3 trong day la% f”, (float) t / d);

}

// chèn x vào giá trị k trong

date printf (“ nNhập giá trị và giá trị x, k =”);

scanf (“% d% d”, & x, & k);

for (i = n-1; i> = k; i–)

{

a [i + 1] = a [i];

}

a [k] = x;

printf (“ n Day sau khi insert:”);

for (i = 0; i <n + 1; i ++)

{

printf (“% 5d”, a [i]);

}

getch ();

}

 

Bạn có thể viết các giải pháp của các vấn đề trên bằng cách sử dụng các hàm!

Kết luận

Như vậy trong bài viết này mình đã hướng dẫn và cung cấp lời giải Đề thi nhập môn Tin học trường Đại học Điện lực. Tôi muốn bạn chuyển mã nguồn này thành một dạng hàm để tối ưu hóa và rút ngắn số dòng của mã này. Hãy coi nó như một bài tập cho bạn.

Chúc các bạn học tốt!

Nguồn: phanmemdownload.com.vn

 

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Back to top button