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”
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