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

Sắp xếp một mảng số nguyên sao cho số lẻ nằm trước số chẵn trong C

Trong lập trình, việc sắp xếp dữ liệu là một phần quan trọng. Trong bài tập này, mình sẽ tập trung vào việc sắp xếp một mảng số nguyên sao cho các số lẻ nằm trước các số chẵn trong lập trình C.

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.

Bài tập sắp xếp một mảng số nguyên cho số lẻ nằm trước số chẵn trong C

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

Để giải quyết bài toán này, mình có thể sử dụng thuật toán sắp xếp như Bubble Sort, Selection Sort hoặc Insertion Sort. Trong bài này, mình sẽ sử dụng Bubble Sort vì nó dễ hiểu và dễ cài đặt.

Thuật toán Bubble Sort hoạt động bằng cách so sánh các cặp phần tử liên tiếp trong mảng và hoán đổi chúng nếu cần. Trong trường hợp này, mình sẽ so sánh các số lẻ và chẵn, và nếu phần tử bên trái là chẵn và phần tử bên phải là lẻ, mình sẽ hoán đổi chúng.

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

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

Dưới đây là một ví dụ về cách cài đặt thuật toán Bubble Sort trong ngôn ngữ lập trình C để sắp xếp mảng số nguyên sao cho số lẻ nằm trước số chẵn:

#include <stdio.h>

// Hàm hoán đổi hai phần tử
void swap(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

// Hàm sắp xếp mảng sao cho số lẻ nằm trước số chẵn
void sortOddEven(int arr[], int n) {
    for (int i = 0; i < n-1; i++) {
        for (int j = 0; j < n-i-1; j++) {
            // Nếu số bên trái là chẵn và số bên phải là lẻ, hoán đổi chúng
            if (arr[j] % 2 == 0 && arr[j+1] % 2 != 0) {
                swap(&arr[j], &arr[j+1]);
            }
        }
    }
}

// Hàm in mảng ra màn hình freetuts.net
void printArray(int arr[], int size) {
    for (int i = 0; i < size; i++)
        printf("%d ", arr[i]);
    printf("\n");
}

int main() {
    int arr[] = {12, 34, 45, 9, 8, 90, 3};
    int n = sizeof(arr)/sizeof(arr[0]);
    printf("Mảng trước khi sắp xếp: \n");
    printArray(arr, n);
    sortOddEven(arr, n);
    printf("Mảng sau khi sắp xếp sao cho số lẻ nằm trước số chẵn: \n");
    printArray(arr, n);
    return 0;
}

Kết quả

Kết quả khi chạy chương trình sẽ là mảng đã được sắp xếp sao cho số lẻ nằm trước số chẵn:

Screenshot 202024 03 14 20122832 png

Trong bài tập này, mình đã học cách sắp xếp một mảng số nguyên sao cho số lẻ nằm trước số chẵn sử dụng thuật toán Bubble Sort trong ngôn ngữ lập trình C. Điều này cung cấp một phương pháp cơ bản để xử lý bài toán tương tự trong các tình huống thực tế.

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