Em hãy liệt kê một số ca kiểm thử cho chương trình: a) Tìm số x trong một dãy số (đã cho cụ thể). b) Sắp xếp một dãy số.

Em hãy liệt kê một số ca kiểm thử cho chương trình:

a) Tìm số x trong một dãy số (đã cho cụ thể).

b) Sắp xếp một dãy số.

Trả lời

a) Gợi ý

Bước 1: Ta khai báo một mảng tĩnh số nguyên có 100 ô nhớ int a[100].

Bước 2: Ta khai báo số nguyên int n là số lượng phần tử có trong mảng với điều kiện n>1 hoặc n<100 nếu không thỏa mãn thì yêu cầu nhập lại n.

Bước 3: Ta khỏi tạo hàm void Nhap(int a[], int n) dùng để nhập dữ liệu từ bàn phím cho mảng. Trong hàm ta sử dụng vòng for bắt đầu từ int i =0 và kết thúc khi i<n và mỗi lần i tăng lên một để nhập dữ liệu cho từng phần tử từ a[0] đến a[n-1], trong vòng for thì nhập vào dữ liệu của a[i].

Bước 4: Ta khởi tạo hàm void Xuat(int a[], int n) dùng để hiển thị dữ liệu từ mảng ra màn hình. Trong hàm ta sử dụng vòng for bắt đầu từ int i =0 và kết thúc khi i<n và mỗi lần i tăng lên một để hiển thị dữ liệu của từng phần tử từ a[0] đến a[n-1] ra màn hình, trong vòng for in a[i] ra màn hình.

Bước 5: Ta khởi tạo hàm int TimKiem(int a[], int n) dùng để tìm kiếm phần tử; ta khai báo biến int x là số cần tìm và nhập vào giá trị của x; tiếp theo sử dụng vòng lặp for bắt đầu từ int i =0 và kết thúc khi i<n và mỗi lần i tăng lên một để hiển thị dữ liệu của từng phần tử có trong mảng; trong vòng lặp ta dùng if với điều kiện nếu a[i]==x thỏa mãn thì ta in i ra màn hình.

Bước 6: Trong hàm main ta gọi hàm Nhap(a,n), Xuat(a,n) để hiển thị mảng gốc ta gọi thêm hàm TimKiem(a,n) rồi chạy chương trình.

b) Sắp xếp một dãy số giảm dần

#include <stdio.h>

int main(){

    int a[100];

    int n;

    printf("\nNhap so luong phan tu n = ");

    do{

        scanf("%d", &n);

        if(n <= 0){

            printf("\nNhap lai n = ");

        }

    }while(n <= 0);

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

        printf("\nNhap a[%d] = ",i);

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

    }

    // Sap xep dung thuat toan sap xep chon

    int tg;

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

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

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

                // Hoan vi 2 so a[i] va a[j]

                tg = a[i];

                a[i] = a[j];

                a[j] = tg;        

            }

        }

    }

    

    

    printf("\nMang da sap xep la: ");

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

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

    } 

}

Câu hỏi cùng chủ đề

Xem tất cả