Tìm số ở giữa trong 5 số nguyên đôi một khác nhau

Cho em hỏi bài này làm thế nào ạ

Bạn hãy viết chương trình nhập vào từ bàn phím 5 số nguyên đôi một khác nhau và in ra màn hình số ở giữa. Số ở giữa là số có hai số nhỏ hơn nó và có hai số lớn hơn nó

Theo mình thì sắp xếp lại dãy và in ra phần tử thứ 3.

thuật toán của bài này là gì ạ

à…mình cũng chưa hiểu vấn đề lắm nhưng tìm số ở giữa thì nó dễ ợt à

à mình hiểu vấn đề rồi để mình làm lại =]]

Bạn có thể tham khảo code của mình ở đây ^^
Cách làm là:
+) Tìm các chữ số của số đó.
+) Đưa hết tất cả các chữ số vào một list ( mảng ) rồi sắp xếp nó. Từ bé đến lớn cũng được mà từ lớn đến bé cũng được vì giá trị ta cần là giá trị nằm giữa.
+) Ta in giá trị ở index thứ 2

em cảm ơn ạ. em làm được rồi

thế làm bằng cách khác à? Share code xem ké với !!!

#include <iostream>
using namespace std;
int main()
{
    int a,b,c,d,e;
    cin>>a>>b>>c>>d>>e;
    f(((a>b)&&(a>c)&&(a<d)&&(a<e))||((a>b)&&(a>d)&&(a<c)&&(a<e))||((a>b)&&(a>e)&&(a<c)&&(a<d))||((a>c)&&(a>d)&&(a<b)&&(a<e))||((a>c)&&(a>e)&&(a<b)&&(a<d))||((a>d)&&(a>e)&&(a<c)&&(a<b)))
        cout<<a;
    f(((b>a)&&(b>c)&&(b<d)&&(b<e))||((b>a)&&(b>d)&&(b<c)&&(b<e))||((b>a)&&(b>e)&&(b<c)&&(b<d))||((b>c)&&(b>d)&&(b<a)&&(b<e))||((b>c)&&(b>e)&&(b<a)&&(b<d))||((b>d)&&(b>e)&&(b<a)&&(b<c)))
        cout<<b;
    f(((c>a)&&(c>b)&&(c<d)&&(c<e))||((c>a)&&(c>d)&&(c<b)&&(c<e))||((c>a)&&(c>e)&&(c<b)&&(c<d))||((c>b)&&(c>d)&&(c<a)&&(c<e))||((c>b)&&(c>e)&&(c<a)&&(c<d))||((c>d)&&(c>e)&&(c<a)&&(c<b)))
        cout<<c;
    f(((d>a)&&(d>b)&&(d<c)&&(d<e))||((d>a)&&(d>c)&&(d<b)&&(d<e))||((d>a)&&(d>e)&&(d<b)&&(d<c))||((d>b)&&(d>c)&&(d<a)&&(d<e))||((d>b)&&(d>e)&&(d<a)&&(d<c))||((d>c)&&(d>e)&&(d<a)&&(d<b)))
        cout<<d;
    f(((e>a)&&(e>b)&&(e<d)&&(e<c))||((e>a)&&(e>d)&&(e<b)&&(e<c))||((e>a)&&(e>c)&&(e<b)&&(e<d))||((e>b)&&(e>d)&&(e<a)&&(e<c))||((e>b)&&(e>c)&&(e<a)&&(e<d))||((e>d)&&(e>c)&&(e<a)&&(e<b)))
        cout<<e;
    return;
}

ôi dồi ơi -__- thua bạn luôn toán tử so sánh kiểu này =]]] (y) mà thấy hay phết

theo mình hiểu thì bài của bạn là tìm số lớn thứ 3 trong dãy phải không?

sao lại so sánh thế này,nó mà cho đề bài là 15 số thì bạn so sánh đến mai ak

nếu bài toán này thêm điều kiện là không dùng quá 6 phép so sánh thì thế nào ạ?

Điều này là có thể (2^6 = 64 > 5!/2) nhưng bạn phải biến đổi input trước.
Gợi ý là bạn sẽ xoay quanh phần tử thứ 3. Để dễ hình dung thì nên vẽ 5 đỉnh với mũi tên :smiley:

Thứ nhất ta cần suy nghĩ giả thiết & yêu cầu (phát biểu lại :smiley: ) tức là: số này phải lớn hơn đúng hai trong bốn số còn lại.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?