Hiển thị 3 số nguyên theo thứ tự tăng dần, dùng tối đa một biến phụ



Đề bài: Viết chương trình nhập vào 3 số nguyên. Hãy hiển thị 3 số nguyên này ra màn hình theo thứ tự tăng dần và chỉ dùng tối đa 1 biến phụ
Yêu cầu kiến thức:

  • Phân tích, thiết kế giải thuật để không bỏ sót trường hợp
  • Vận dụng cách sắp xếp tự nhiên trong cuộc sống “Cuộc sống và lập trình”
Cơ sở lý thuyết:
Chúng ta có 3 số nguyên a, b, c. Yêu cầu hiển thị 3 số nguyên này theo thứ tự tăng dần.
Ta so sánh theo từng cặp để không bỏ sót trường hợp nào. Xét lần lượt các cặp (a; b), (a; c) và (b; c)

  • Nếu a < b mà sai thì tức là a >= b (Ngược lại của < là >=)
  • Nếu a < c mà sai thì tức là a >= c. Kết hợp với trường hợp trên thì ta suy ra a lớn nhất (Vì a >= b và a >= c)
  • Nếu b < c mà sai thì tức là b >= c. Như vậy c là giá trị nhỏ nhất trong 3 số trên.

Code tham khảo dưới được lưu với phần mở rộng là “.cpp”:


// Ho ten: Hoang Van Tuan
// Website: timoday.edu.vn
// De bai:
/* Bai 3: Hien thi 3 so nguyen theo thu tu tang dan. Yeu cau dung toi da 1 bien phu */

#include<iostream>
#include<stdio.h>

using namespace std;

// Khai bao ham
void Swap(int &x, int &y); // Ham hoan chuyen 2 so nguyen truyen vao

//===chuong trinh chinh===
int main()
{
    // Khai bao bien
    int a, b, c, tg;

    // Nhap du lieu
    cout<<"Nhap vao so nguyen thu nhat: "; cin>>a;
    cout<<"Nhap vao so nguyen thu hai: "; cin>>b;
    cout<<"Nhap vao so nguyen thu ba: "; cin>>c;

    // Thiet ke giai thuat
    if(a<b) Swap(a, b); // Neu a < b thi hoan chuyen, suy ra a >= b
    if(a<c) Swap(a, c); // Neu a < c thi hoan chuyen, suy ra a lon nhat
    if(b<c) Swap(b, c); // Neu b < c thi hoan chuyen, suy ra c nho nhat

    // Hien thi ket qua
    printf("3 so nguyen theo thu tu tang dan la: %d; %d va %d", c, b, a);

    cout<<endl;
    return 0;
}
//===dinh nghia ham===
void Swap(int &x, int &y)
{
    int tg;
    tg = x;
    x = y;
    y = tg;
}


Kết luận:

  • Bạn có thể tham khảo thêm khóa học lập trình C từ cơ bản đến nâng cao. Xem tại đây
  • Bạn có thể tham khảo thêm khóa học Thành thạo lập trình C#. Xem tại đây

Có thể bạn sẽ thích…

Trả lời

EnglishVietnamese