• Trang chủ
  • Du lịch
  • Game
  • Công nghệ
  • Thủ thuật
  • Kinh doanh
  • Xe Tốt
  • Nội-Ngoại thất
  • Blog
Facebook Twitter Instagram Pinterest
  • Trang chủ
  • Du lịch
  • Game
  • Công nghệ
  • Thủ thuật
  • Kinh doanh
  • Xe Tốt
  • Nội-Ngoại thất
  • Blog
Facebook Twitter Instagram Pinterest
Presidentpmr.org
Login
Presidentpmr.org
Home»Blog»Bài tập mảng 1 chiều c++ có lời giải
Blog

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

Presidentpmr.orgBy Presidentpmr.org24/02/2021
Share Facebook Twitter Pinterest LinkedIn Tumblr Email
bài tập mảng 1 chiều c++ có lời giải
Share
Facebook Twitter LinkedIn Pinterest Email

Để làm chủ ngôn ngữ lập trình C++, sử dụng mảng 1 chiều là một trong những kỹ năng thiết yếu nhất. Bài viết này sẽ giúp những bạn nào đang cảm thấy “lạc trôi” khi học lập trình cơ bản nắm được cách giải quyết các bài tập mảng 1 chiều C++ có lời giải.

Comparison of Nasal Steroids After FESS in CRSwNP – Full Text View – ClinicalTrials.gov testogel uk buy the future of pharma: how we could soon be prescribed personalised 4d printed drugs

Nội Dung Bài Viết

  1. Một số khái niệm về C++ cần nhớ
    1. C++ là gì?
    2. Khái niệm mảng 1 chiều C++
  2. Bài tập mảng 1 chiều C++ có lời giải
  3. Một số dạng bài tập mảng 1 chiều khác
    1. Dạng bài nhập, xuất mảng 1 chiều
    2. Dạng bài in ra các số nguyên tố trong mảng
    3. Dạng bài chèn phần tử vào mảng

Một số khái niệm về C++ cần nhớ

C++ là gì?

C++ nằm trong top 3 ngôn ngữ lập trình phổ biến nhất thế giới, hỗ trợ hầu như tất cả các phương pháp lập trình hiện nay như lập trình hướng thủ tục, lập trình hướng đối tượng, lập trình hướng module. Ngôn ngữ lập trình C++ được ra đời vào năm 1983 do nhà khoa học Bjarne Stroustrup nghiên cứu và cải tiến từ ngôn ngữ lập trình C. Do đó C++ gần như kế thừa toàn bộ các thuộc tính của C, đồng thời được nâng cấp và bổ sung nhiều chức năng tân tiến hơn.

Khái niệm mảng 1 chiều C++

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

Mảng 1 chiều (tiếng anh là One-Dimensional Array) là một loại cấu trúc dữ liệu trong ngôn ngữ lập trình C++, có chức năng lưu trữ một tập hợp gồm các phần tử (cùng kiểu dữ liệu), với độ dài cố định.

Mảng có kích thước là n sẽ có chỉ số chạy từ 0 đến n – 1. Ví dụ, với n = 5, khi đó các chỉ số của mảng sẽ có giá trị từ 0 tới 4 (tức 5 -1) tương ứng với 5 phần tử. Các phần tử trong mảng được gọi tên bằng code <em>array_name[index].

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

Dưới đây là bài tập tổng hợp mang tính “kinh điển” về mảng 1 chiều trong lập trình C++.

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

  1. Tính giá trị 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 vừa nhập
  3. Tìm số nhỏ nhất trong mảng
  4. Đếm các số chính phương có trong mảng
  5. Hiển thị các số nguyên tố có trong mảng lên màn hình
  6. Thay thế các phần tử có giá trị âm trong mảng bằng số 0
  7. Xóa các phần tử âm có trong mảng
  8. Sắp xếp mảng đã nhập theo thứ tự tăng dần.

Lời giải:

  1. #include <stdio.h>
  2. #include <math.h> // Su dung ham sqrt
  3. const int MAX = 100000;
  4. int arr[MAX];
  5. int main(){
  6.     int n;
  7.     printf(“\nNhap so luong phan tu n = “);
  8.     scanf(“%d”, &n);
  9.     
  10.     // Nhap mang
  11.     for(int i = 0;i < n; ++i){
  12.         printf(“\nNhap a[%d] = “, i);
  13.         scanf(“%d”, &arr[i]);
  14.     }
  15.     /*————————————*/
  16.     // 1 .Tinh trung binh cong cac so le o vi tri chan
  17.     // Chu y: Vi tri chan = chi so le
  18.     int sum = 0;
  19.     int count = 0;
  20.     for(int i = 1; i < n; i+=2){
  21.         if(arr[i] % 2 == 1){
  22.             ++count;
  23.             sum += arr[i];
  24.         }
  25.     }
  26.     printf(“\nTrung binh cong = %f”, (float)sum/count);
  27.     
  28.     /*————————————*/
  29.     // 2. Tim so lon nhat trong mang vua nhap
  30.     int maxNum = arr[0];
  31.     for(int i = 1;i < n;++i){
  32.         if(arr[i] > maxNum) maxNum = arr[i];
  33.     }
  34.     printf(“\nPhan tu lon nhat: %d”, maxNum);
  35.     
  36.     /*————————————*/
  37.     // 3. Tim vi tri cac so nho nhat trong mang
  38.     // Can lam 2 buoc:
  39.     //     1. Tim gia tri nho nhat minNum.
  40.     //     2. In ra cac vi tri co gia tri = minNum
  41.     // Luu y: Vi tri = chi so + 1
  42.     
  43.     // Tim gia tri nho nhat
  44.     int minNum = arr[0];
  45.     for(int i = 1;i < n;++i){
  46.         if(arr[i] < minNum) minNum = arr[i];
  47.     }
  48.     
  49.     // In ra vi tri co gia tri nho nhat
  50.     printf(“\nVi tri co gia tri nho nhat la: “);
  51.     for(int i = 0;i < n;++i){
  52.         if(arr[i] == minNum) printf(“%d “, i+1);
  53.     }
  54.     
  55.     /*————————————*/
  56.     // 4. Dem cac so chinh phuong co trong mang
  57.     // So chinh phuong la so co can la so nguyen nhu: 1, 4, 9,…
  58.     int scp = 0;
  59.     float rs;
  60.     for(int i = 0;i < n;++i){
  61.         rs = sqrt(arr[i]);
  62.         if(rs == (int)rs) ++scp;
  63.     }
  64.     printf(“\nMang co %d so chinh phuong!”, scp);
  65.     
  66.     /*————————————*/
  67.     // 5. Hien thi cac so nguyen to co trong mang
  68.     // So nguyen to la so chi co 2 uoc duy nhat la 1 va chinh no.
  69.     // So nguyen to nho nhat la so 2
  70.     printf(“\nCac so nguyen to co trong mang la: “);
  71.     bool snt;
  72.     for(int i = 0;i < n;i++){
  73.         // Kiem tra a[i] co phai so nguyen to?
  74.         // gia su no la so nguyen to
  75.         // Neu no chia het cho so bat ky trong [2, a[i]] -> khong phai so nguyen to
  76.         snt = true;
  77.         for(int j = 2;j < arr[i]; ++j){
  78.             if(arr[i] % j == 0) snt = false;
  79.         }
  80.         if(arr[i] >= 2 && snt == true) printf(“%d “, arr[i]);
  81.     }
  82.     
  83.     /*————————————*/
  84.     // 6. Thay the cac phan tu am trong mang = 0.
  85.     for(int i = 0;i < n;++i){
  86.         if(arr[i] < 0) arr[i] = 0;
  87.     }
  88.     // Muon xem thay doi thi bo comment
  89. //  printf(“\nMang sau khi thay the la: “);
  90. //  for(int i = 0;i < n;++i){
  91. //      printf(“%d “, arr[i]);
  92. //  }
  93.     
  94.     // 7. Xoa cac phan tu am co trong mang
  95.     // Neu muon xem ket qua phan nay thi comment phan so 6 lai nhe
  96.     // Cai nay ma giai thich bang ca 1 bai van luon ^^
  97.     for(int i = 0;i < n;++i){
  98.         if(arr[i] < 0){
  99.             for(int j = i; j < n–1;j++){
  100.                 arr[j] = arr[j+1];
  101.             }
  102.             —n;
  103.         }
  104.     }
  105.     // Muon xem thay doi thi bo comment
  106. //  printf(“\nMang sau khi xoa phan tu am la: “);
  107. //  for(int i = 0;i < n;++i){
  108. //      printf(“%d “, arr[i]);
  109. //  }
  110.     /*————————————*/
  111.     // 8. Sap xep mang da nhap theo chieu tang dan
  112.     int tg;
  113.     for(int i = 0;i < n–1;++i){
  114.         for(int j = i+1; j < n;++j){
  115.             if(arr[i] > arr[j]){
  116.                 // Hoan vi
  117.                 tg = arr[i];
  118.                 arr[i] = arr[j];
  119.                 arr[j] = tg;
  120.             }
  121.         }
  122.     }
  123.     // Muon xem thay doi thi bo comment
  124.     printf(“\nMang sau khi sap xep tang dan la: “);
  125.     for(int i = 0;i < n;++i){
  126.         printf(“%d “, arr[i]);
  127.     }
  128. }

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

Dạng bài nhập, xuất mảng 1 chiều

Đề bài: Nhập vào một dãy số nguyên. Hiển thị ra màn hình dãy số đó.

Lời giải:

  1. #include<stdio.h>
  2. #include<conio.h>
  3. main()
  4. {    
  5.     int a[50];
  6.     int i,n;
  7.     printf(“Nhap so phan tu mang: “);
  8.     scanf(“%d”,&n);
  9.     for(i=0;i<n;i++)
  10.     {
  11.         scanf(“%d”,&a[i]);
  12.     }    
  13.     printf(“\nMang vua nhap la:”);
  14.     for(i=0;i<n;i++)
  15.     {
  16.         printf(“%5d”,a[i]);
  17.     }
  18.     getch();
  19. }

Dạng bài in ra các số nguyên tố trong mảng

Đề bài: Nhập vào một dãy số nguyên và đưa ra màn hình các số nguyên tố có trong mảng cùng với vị trí của chúng trong mảng.

Lời giải:

  1. #include<stdio.h>
  2. #include<conio.h>
  3. main()
  4. {    
  5.     int a[50];
  6.     int i,n,j,kt;
  7.     printf(“Nhap so luong phan tu:”);
  8.     scanf(“%d”,&n);
  9.     for(i=0;i<n;i++)
  10.     {
  11.         scanf(“%d”,&a[i]);
  12.     }    
  13.     printf(“\nCac so nguyen to co trong  mang va vi tri cac so do trong mang la:”);
  14.     for(i=0;i<n;i++)
  15.     {
  16.         kt=0;
  17.         for(j=2;j<=a[i]/2;j++)
  18.         {
  19.             if(a[i]%j==0)
  20.             kt=1;    
  21.         }
  22.         if(kt==0)
  23.         printf(“\nso nguyen to %d vi tri %d trong mang “, a[i], i );
  24.     }
  25.     getch();
  26. }

Dạng bài chèn phần tử vào mảng

Đề bài: Nhập 1 dãy n số nguyên (0<n<30)

  • Hiển thị trên màn hình dãy số vừa nhập
  • Hiển thị trên màn hình các số chẵn cùng với vị trí của chúng trong dãy
  • Sắp xếp dãy số theo thứ tự giá trị giảm dần.
  • Chèn một số X bất kỳ vào dãy số, với điều kiện sau khi chèn, thứ tự giá trị các phần tử vẫn giảm dần (X nhập từ bàn phím).

Lời giải:

  1. #include<stdio.h>
  2. #include<conio.h>
  3. main()
  4. {    
  5.     int a[50];
  6.     int i,n,tg,max,j,s=0;
  7.     printf(“nhap vao so phan tu: “);
  8.     scanf(“%d”,&n);
  9.     for(i=0;i<n;i++)
  10.     {        
  11.         scanf(“%d”, &a[i]);
  12.     }
  13.     max=a[0];
  14.     for(i=1;i<n;i++)
  15.     {
  16.         if(a[i]>max)
  17.         {
  18.             max =a[i];
  19.         }
  20.     }
  21.     printf(“\nSo lon nhat =%d”,max);
  22.     printf(“\nvi tri cua gia tri lon nhat trong day la: “);
  23.     for(i=0;i<n;i++)
  24.     {
  25.         if (a[i]==max)
  26.         {
  27.             printf(“%6d”, i+1);
  28.         }
  29.     }
  30. //sap xep day so theo thu tu tang dan
  31.     for(i=0;i<n–1;i++)
  32.        for(j=i+1; j<n; j++)
  33.        {
  34.         if(a[i]>a[j])
  35.           {
  36.             tg=a[i];
  37.              a[i]=a[j];
  38.               a[j]=tg;
  39.            }
  40.        }
  41.     printf(“\nday so sau khi sap xep la:”);
  42.        for(i=0;i<n;i++)
  43.        {
  44.           printf(“%6d”,a[i]);
  45.     }
  46. //Tinh tong va trung binh cong cac so trong day
  47.     for(i=0;i<n;i++)
  48.     {
  49.         s=s+a[i];
  50.        }
  51.     printf(“\nTong cac so trong day la: %d”,s);
  52.     printf(“\nTrung binh cong cac so trong day la: %f”, (float)s/n);
  53.     getch();
  54. }

Trên đây là một số bài tập mảng 1 chiều c++ có lời giải để các bạn luyện tập. Dạng bài tập về mảng trong ngôn ngữ lập trình C++ còn rất nhiều ở phía trước, vì vậy hãy luyện tập thành thạo các dạng bài cơ bản trên để nắm chắc kỹ thuật sử dụng mảng 1 chiều nhé! Chúc các bạn sớm chinh phục thành công ngôn ngữ lập trình C++.

Share. Facebook Twitter Pinterest LinkedIn Tumblr Email

BÀI VIẾT LIÊN QUAN

Công nghệ Block trên máy lọc nước nóng lạnh là gì?

07/09/2023

Khám phá vẻ đẹp độc đáo của lan can sắt nghệ thuật trong kiến trúc và thiết kế nội thất tại cauthangnghethuatdep.com

21/04/2023

Những kiểu tóc mullet đẹp, chất ngầu dành cho nam nữ

23/02/2023

Leave A Reply Cancel Reply

BÀI MỚI NHẤT

Công nghệ Block trên máy lọc nước nóng lạnh là gì?

Chuyến du lịch Motorcycle tại Bắc Lào thoát khỏi những cung đường thông thường – 10 ngày

Cửa Nhựa Hàn Quốc: Sự kết hợp hoàn hảo giữa chất lượng và thiết kế tinh tế

Khám phá vẻ đẹp độc đáo của lan can sắt nghệ thuật trong kiến trúc và thiết kế nội thất tại cauthangnghethuatdep.com

Những kiểu tóc mullet đẹp, chất ngầu dành cho nam nữ

Các món ăn làm từ bột mì siêu ngon mà bạn không thể bỏ lỡ

TOP ĐỀ XUẤT
quy định về mua sắm tài sản dưới 100 triệu

Những quy định về mua sắm tài sản dưới 100 triệu bạn chớ nên bỏ qua!

By Presidentpmr.org12/08/2021
phần mềm dịch phụ đề phim nhiều ngôn ngữ sang tiếng việt

Những phần mềm dịch phụ đề phim nhiều ngôn ngữ sang tiếng Việt miễn phí hiện nay

By Presidentpmr.org24/02/2021
Cây sâm Ngọc Linh rừng

Cây sâm Ngọc Linh rừng và cây sâm Ngọc Linh trồng – Những thông tin hữu ích cần biết 

By Presidentpmr.org28/02/2022
Sữa rửa mặt cho da dầu

By Presidentpmr.org10/07/2021
VỀ CHÚNG TÔI

Presidentpmr.org Blog chia sẻ kiến thức, kinh nghiệm về thủ thuật, công nghệ,... được nhiều bạn quan tâm và theo dõi. Hy vọng bạn có được những kiến thức bổ ích. Hãy để lại những bình luận, nhận xét của bạn để mình có thể cải thiện chất lượng bài viết hơn nữa

Facebook Twitter Instagram Pinterest
ĐƯỢC XEM NHIỀU NHẤT
lỗi the snap-in below referenced in this document has been restricted by policy

Hướng dẫn cách khắc phục lỗi the snap-in below referenced in this document has been restricted by policy

26/02/20215.032 Views
bài tập mảng 1 chiều c++ có lời giải

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

24/02/20212.526 Views
chuyển ngôn ngữ win 7 từ tiếng trung sang tiếng anh

Cách chuyển ngôn ngữ win 7 từ tiếng trung sang tiếng anh đơn giản và dễ dàng nhất

24/02/2021487 Views
Chuyên mục
  • Blog (18)
  • Công nghệ (8)
  • Du lịch (11)
  • Game (1)
  • Kinh doanh (10)
  • Nội-Ngoại thất (1)
  • Thủ thuật (6)
  • Xe Tốt (11)
Copyright © 2012 - 2017, Presidentpmr.org
  • Trang chủ
  • Giới thiệu | Chúng tôi là ai?
  • Chính sách

Type above and press Enter to search. Press Esc to cancel.

Sign In or Register

Welcome Back!

Login to your account below.

Lost password?