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

16
60723
Bài tập mảng 1 chiều có lời giải
Giải đề thi nhập môn tin học Đại học Điện Lực
Bài số 51 trong 69 bài của series Học C Không Khó

Chào các bạn, hôm nay Lập trình Không khó sẽ cùng các bạn giải quyết một số bài tập mảng 1 chiều nhé. Hiện tại, đề bài này chưa cho phép sử dụng hàm con nên code sẽ được thực thi toàn bộ trong hàm main nhé các bạn.

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

Các bài tập mảng 1 chiều phổ biến

Đây là một 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 tin học phầ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ảng số nguyên gồm n phần tử.

  1. Tính trung bình cộng 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 vị trí các 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ử âm có trong mảng bằng giá trị 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

Với bài tập mảng 1 chiều này, do mình không sử dụng ma trận copy để làm câu 6 và 7. Mà hai câu 6 và 7 có sự xung đột. Do đo, khi chạy code các bạn lưu ý:

  • Comment phần số 6 nếu muốn chạy phần số 7, và ngược lại
  • Bỏ comment như mô tả trong code để xem kết quả thay đổi

Lời giải

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

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

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

Tính tổng bình phương các số lẻ từ 1 đến n

Tìm max của 3 số a,b,c nhập từ bàn phím

Nhập một số nguyên từ bàn phím, kiểm tra xem đó là số chẵn hay lẻ

Một số bài tập khác nữa

Do bài viết dài nên mình sẽ không để code ở đây nữa. Còn rất nhiều dạng bài tập mảng 1 chiều khác nữa các bạn hãy xem tại đây. Tổng cộng có 21 bài tập cơ bản có thể giúp các bạn ôn luyện cho kỳ thi này.

Kết luận

Như vậy, 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 đại học Điện Lực. Mình mong muốn các bạn chuyển source code này về dạng hàm để tối ưu và rút gọn số dòng code này. Hãy coi như đó là một bài tập dành cho các bạn.

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

Các bài viết trong SeriesBài trước: Bài 52. Thêm/ xóa phần tử trong mảng 1 chiềuBài sau: Bài 54. Mảng 2 chiều trong C – Multi-dimensional Array
avatar

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.

  Subscribe  
Notify of
linh
Guest
linh

các số lẻ ở vị trí chẵn là
sao vậy ?

bùi minh hiếu
Guest
bùi minh hiếu

anh ơi em nghĩ ý 7cuar anh bị sai nên thay if bằng while

Thanh Huyền
Guest
Thanh Huyền

e có 1 bài pascal khó hiểu ak giải hộ e vs ak.
bài tập: nhập một mảng số nguyên n phần tử, dém ,in,và tính tổng các số lẻ chia hết cho 3 và sắp xếp giảm dần

son
Guest
son

anh ơi cho em xin code ” nhập vào một mảng đưa ra các phần tử là số hoàn hảo của mảng đó” với ạ

Lợi Nguyễn
Member
Lợi Nguyễn

trong bài số 7, khi hai số âm kề nhau thì chỉ bỏ đc 1 số âm đầu. phải sửa lại tại if bằng while thì hoàn toàn đúng với mọi trường hợp

Trần vinh
Guest
Trần vinh

void Xoaam(int *a,int *n)
{int i,j,L;
i=0;
while(i<*n)
{if(a[i]<0)
{for(j=i;j<*n-1;j++)
a[i]=a[j+1];
(*n)–;
continue;
}
i++;
}
}

Số 7 của anh em đã hiểu, nhưng còn hàm phía trên em không hiểu cho lắm chỗ lệnh continue. Có phải hàm trên sẽ giúp giảm thời thực hiện hàm không anh?

Nmt
Guest
Nmt

Giúp mình giải bài này với!

Hãy kiểm tra các chữ số của số ngiyeen dương n có tăng dần từ trái sang phải hay không. Vẽ sơ đồ biểu diễn thuật toán của bài này.

duc
Guest
duc

Cho dãy N số nguyên (mỗi phần tử của dãy có thể là số âm, dương hay bằng 0). Cần chọn trong các số các phần tử của dãy 2 phần tử khác nhau sao cho tích của chúng là nhỏ nhất có thể.

Input Format

Dòng 1 ghi số N (2
N Dòng tiếp theo mỗi dòng ghi một phần tử, mỗi phần tử có giá trị không quá 10^9.
Constraints

50% test tương ứng với 50% số điểm có N ≤ 1000.

50% test tương ứng với 50% số điểm có N ≤ 1000000.

Thành
Guest
Thành

câu 7 của anh chỉ xóa đi những số âm không liền kề nhau nếu liền kê thì luôn luôn còn số sót lại số đứng sau

Minh thuận
Guest
Minh thuận

Cho em hỏi với đề: “nhập vào 1 mảng số nguyên,tìm tất cả các vị trí của x và lưu vào 1 mảng khác, xuất mảng vị trí đó ra màn hình” thì mình làm sao ạ em cảm ơn

Đức Long Cao
Member
Đức Long Cao

ý thứ 7 if sửa thành while mới đúng phải không anh?.Code của anh khi chạy 2 số âm liền kề thì số âm thứ 2 bị đè lên nên nó bị xóa đi anh ạ.