SIMPLE
STRING
ARRAY
SORTING
POINTER
CALCULATION
NUMBER
OTHER
C
BÀI TẬP C
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Đảo ngược mảng không sử dụng mảng phụ trong C

Trong bài tập này, mình sẽ viết một chương trình trong ngôn ngữ lập trình C để đảo ngược một mảng mà không sử dụng mảng phụ.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
  • Nhập vào một mảng số nguyên từ người dùng.
  • Đảo ngược mảng đó mà không sử dụng mảng phụ.
  • Hiển thị mảng sau khi đã đảo ngược.

Chương trình đảo ngược mảng không sử dụng mảng phụ trong C

Cách giải quyết bài lập trình

  • Sử dụng hai biến chỉ số, một biến trỏ tới phần tử đầu mảng (bắt đầu) và một biến trỏ tới phần tử cuối mảng (kết thúc).
  • Hoán đổi giá trị của hai phần tử tại hai chỉ số này.
  • Di chuyển biến bắt đầu sang phải và biến kết thúc sang trái.
  • Lặp lại quá trình cho đến khi hai biến gặp nhau.

Hãy xem cách giải như sau:

#include <stdio.h>

void reverseArray(int arr[], int n) {
    int start = 0; // Chỉ số bắt đầu mảng
    int end = n - 1; // Chỉ số kết thúc mảng

    while (start < end) {
        // Hoán đổi giá trị của hai phần tử
        int temp = arr[start];
        arr[start] = arr[end];
        arr[end] = temp;

        // Di chuyển biến bắt đầu sang phải và biến kết thúc sang trái
        start++;
        end--;
    }
}

int main() {
    int arr[100], n, i;

    printf("Nhập số phần tử của mảng: ");
    scanf("%d", &n);

    printf("Nhập các phần tử của mảng:\n");
    for (i = 0; i < n; i++) {
        printf("arr[%d] = ", i);
        scanf("%d", &arr[i]);
    }

    // Đảo ngược mảng
    reverseArray(arr, n);

    printf("Mảng sau khi đảo ngược:\n");// In ra màn hình Freetuts.net
    for (i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    return 0;
}

Kết quả chạy ra màn hình:

Bài viết này được đăng tại [free tuts .net]

z5241836904168 d74febbb98ca6591c5456656c60271b2 jpg

Trên này là cách viết một chương trình trong ngôn ngữ lập trình C để đảo ngược một mảng mà không sử dụng mảng phụ. Chúc bạn thực hiện thành công!

Cùng chuyên mục:

Các hàm xử lý ngày tháng (datetime.h) trong C/C++

Các hàm xử lý ngày tháng (datetime.h) trong C/C++

Các hàm xử lý số thực (float.h) trong C/C++

Các hàm xử lý số thực (float.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý chuỗi (string.h) trong C/C++

Các hàm xử lý chuỗi (string.h) trong C/C++

Thread Pools và Parallel Algorithms trong C++

Thread Pools và Parallel Algorithms trong C++

Tạo và quản lý các Multithreading trong C++

Tạo và quản lý các Multithreading trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Try, Catch, và Throw của Exception Handling trong C++

Try, Catch, và Throw của Exception Handling trong C++

Cách sử dụng Lambda Expressions trong C++

Cách sử dụng Lambda Expressions trong C++

Sử dụng weak_ptr trong C++

Sử dụng weak_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng unique_ptr trong C++

Sử dụng unique_ptr trong C++

Tổng quan về Smart Pointers trong C++

Tổng quan về Smart Pointers trong C++

Sử dụng Iterators trong STL của C++

Sử dụng Iterators trong STL của C++

[Iterator] Sử dụng Vector trong C++

[Iterator] Sử dụng Vector trong C++

[Iterator] Sử dụng trong List trong C++

[Iterator] Sử dụng trong List trong C++

[STL] Sử dụng Vector trong C++

[STL] Sử dụng Vector trong C++

Tổng quan về Iterators trong C++

Tổng quan về Iterators trong C++

[STL] Các hàm thường dùng của lớp Vector trong C++

[STL] Các hàm thường dùng của lớp Vector trong C++

Top