Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 21 kết quả

Đề tài: Nhập 4 Số Nguyên sắp xếp tăng dần (Sử dụng Toán tử 3 ngôi hoặc If else)

  1. #1
    Ngày gia nhập
    12 2014
    Bài viết
    5

    Post Nhập 4 Số Nguyên sắp xếp tăng dần (Sử dụng Toán tử 3 ngôi hoặc If else)

    #include <stdio.h>
    int main()
    {
    int a,b,c,d;
    int max, min, min1, e;
    scanf("%d%d%d%d",&a,&b,&c,&d);

    min=a<b?a:b;
    min=min<c?min:c;
    printf("%d\n",min);

    max=a>b?a:b;
    max=max>c?max:c;
    printf("%d", max);

    }

    Có ai giúp em với không viết theo dạng Toán Tử 3 Ngôi... hoặc viết theo if else'

    ở dây e đã viết cái lớn nhất và bé nhất rồi còn 2 cái ở giữa
    Đã được chỉnh sửa lần cuối bởi mtsunwin : 05-12-2014 lúc 12:41 PM.

  2. #2
    Ngày gia nhập
    07 2014
    Bài viết
    8

    4 số nguyên mà sao nhập có 3 thế ?
    The problem is not the problem. the problem is your attitude about the problem

  3. #3
    Ngày gia nhập
    12 2014
    Bài viết
    5

    à làm 4 số khó quá đổi qua 3 số ><

  4. #4
    Ngày gia nhập
    10 2014
    Bài viết
    373

    /*
    * Nếu số hạng thứ nhất 'a' lớn hơn số hạng thứ hai 'b'
    * Thì sao lưu giá trị của 'a' cho 1 biến tạm 'e'
    * Gán giá trị của 'b' cho 'a'
    * Gán giá trị của 'e' cho 'b'
    */

    /*
    * Nếu số hạng thứ hai 'b' lớn hơn số hạng thứ ba 'c'
    * Thì sao lưu giá trị của 'b' cho 1 biến tạm 'e'
    * Gán giá trị của 'c' cho 'b'
    * Gán giá trị của 'e' cho 'c'
    */


    .................................................. ....
    Stay hungry. Stay foolish.
    Design is not just what it looks like and feels like. Design is how it works.

  5. #5
    Ngày gia nhập
    12 2014
    Bài viết
    5

    int main()
    {
    int a,b,c,e;
    scanf("%d%d%d",&a,&b,&c);
    if(a>b)
    {
    e=a;
    a=b;
    b=e;
    }
    if(b>c)
    {
    e=b;
    b=c;
    c=e;
    }
    printf("%d%d%d",a,b,c);

    }

    làm theo bạn và nhập kết quả là 7 8 1 nó ra sai ?

    - - - Nội dung đã được cập nhật ngày 05-12-2014 lúc 02:05 PM - - -

    ok bạn mình làm được rồi

    #include <stdio.h>
    int main()
    {
    int a,b,c,e;
    scanf("%d%d%d",&a,&b,&c);
    if(a>b)
    {
    e=a;
    a=b;
    b=e;
    }
    if(b>c)
    {
    e=b;
    b=c;
    c=e;
    }
    if(a>b)
    {
    e=a;
    a=b;
    b=e;
    }
    printf("%d%d%d",a,b,c);

    }

  6. #6
    Ngày gia nhập
    10 2014
    Bài viết
    373

    Mặc định Nhập 4 Số Nguyên sắp xếp tăng dần (Sử dụng Toán tử 3 ngôi hoặc If else)

    Mình viết dấu nhiều chấm có nghĩa là ở phía dưới nó vẫn còn và làm tương tự như vậy.
    Bạn phải linh động chứ, áp dụng cho 'c' và 'd' nữa.
    Tóm lại, nếu là 4 số thì có 5 biến, sắp xếp mặc định theo chiều tăng dần là 'a', 'b', 'c', 'd'
    Stay hungry. Stay foolish.
    Design is not just what it looks like and feels like. Design is how it works.

  7. #7
    Ngày gia nhập
    07 2014
    Bài viết
    8

    Code:
    main(){
    	int a,b,c;
    	int min, max, mid;
    	printf("Nhap a, b, c: ");
    	scanf("%d%d%d", &a, &b, &c);
    	min=(a>b)?((b>c)?c:b):((a>c)?c:a);
    	max=(a>b)?((a<c)?c:a):((b<c)?c:b);
    	mid=(a>b)?((b>c)?b:((a>c)?c:a)):((a>c)?a:((b>c)?c:b));
    	printf("%d %d %d",min,mid,max);
            getch();
    }
    3 số, còn 4 số mà dùng if thì hơi mệt... :v :v
    The problem is not the problem. the problem is your attitude about the problem

  8. #8
    Ngày gia nhập
    04 2010
    Nơi ở
    Recycle Bin
    Bài viết
    358

    Cải tiến lại bài của tdraucuda
    C Code:
    1. min = a < b ? (a < c ? a : c) : (b < c ? b : c);
    2. max = a > b ? (a > c ? a : c) : (b > c ? b : c);
    3. mid = a + b + c - min - max;
    YH : lobuocphuudu_218
    Phone : 0126 463 5095

    http://forums.congdongcviet.com/signaturepics/sigpic55872_2.gif

  9. #9
    Ngày gia nhập
    07 2011
    Bài viết
    474

    4 số thì dễ mà, 5 so sánh là đủ: giả sử cho x y z w
    so sánh x và y, được a1 và b1 với a1 < b1
    so sánh z với a1, so sánh z với b1, được a2 < b2 < c2
    so sánh w với b2 rồi tùy kết quả mà so sánh w với a2 hoặc w với c2, được a3 < b3 < c3 < d3


    if x < y: a1, b1 = x, y
    else: a1, b1 = y, x

    if z < a1: a2, b2, c2 = z, a1, b1
    else if z < a2: a2, b2, c2 = a1, z, b1
    else: a2, b2, c2 = a1, b1, z

    if w < b2:
        if w < a2: a3, b3, c3, d3 = w, a2, b2, c2
        else: a3, b3, c3, d3 = a2, w, b2, c2
    else if w < c2: a3, b3, c3, d3 = a2, b2, w, c2
    else: a3, b3, c3, d3 = a2, b2, c2, w



    4 số thì có 4! = 24 thứ tự x y z w. Mỗi lần so sánh giảm được 2 lần: lần so sánh thứ nhất còn 12 cách, lần ss thứ 2 còn 6 cách, ss thứ 3 còn 3 cách, ss thứ 4 còn tối đa 2 cách, ss thứ 5 thì chỉ còn 1 cách chọn x y z w => mininum là 5 so sánh.

    5 số khó hơn nhiều. 5! = 120, 27 = 128. Chỉ trong 7 lần so sánh có thể sắp xếp 5 số a b c d e không?

    3 số thì 3! = 6, 23 = 8, 3 lần so sánh: so sánh lấy a < b: 1 bước ss, được a1 b1 với a1 < b1, c sẽ vào 1 trong 3 chỗ trống: . a1 . b1 . => 2 lần so sánh nữa là biết vị trí của c. Dễ.

    4 số cũng dễ vì áp dụng cách này cũng được: cho x, y, z, w, xài sắp xếp 3 số, tốn 3 lần so sánh, được a1 < b1 < c1. Số thứ 4, w, sẽ được điền vào 1 trong 4 chỗ trống: . a1 . b1 . c1 . , mà 4 chỗ thì chỉ cần 2 lần so sánh nữa, vậy tổng cộng là 3 + 2 = 5 lần so sánh, vừa đạt mức tối thiểu luôn => dễ.

    5 số thì khó, vì nếu xài sắp xếp 4 số thì đã tốn 5 lần so sánh, được a1 < b1 < c1 < d1. Số thứ 5, e, sẽ được điền vào 1 trong 5 chỗ trống . a1 . b1 . c1 . d1 . , mà 5 chỗ thì cần tới 3 lần so sánh mới chọn được chỗ chính xác => 5 + 3 = 8 lần so sánh. Trong khi trên lý thuyết chỉ cần 7 lần so sánh. => khó vì ko xài sắp xếp 4 số được.

    6 số thì dễ vì chỉ cần sắp xếp 5 số được a1 < b1 < c1 < d1 < e1: 7 lần so sánh. Số thứ 7 vào 1 trong 6 vị trí => 3 lần so sánh nữa, tổng cộng là 10 lần so sánh. Không thể xài 9 lần so sánh vì 29 = 512 < 6! = 720. Vậy 10 lần so sánh là tối thiểu => dễ

    v.v...
    Đã được chỉnh sửa lần cuối bởi INTP : 05-12-2014 lúc 09:34 PM.

  10. #10
    Ngày gia nhập
    10 2014
    Bài viết
    373

    Lão @INTP phân tích kinh vậy???
    Nếu giả sử bài toán cho phép sử dụng thêm vòng lặp for, vậy với ý tưởng của tui phía trên với n số (n > 3) thì nó chỉ thực hiện (n -1) lần thôi.

    Theo tui hiểu thì việc giới hạn bài tập ở mức 4 con số là không cho phép sử dụng vòng lặp ý.
    Thay vì chỉ viết 1 lần, chủ thớt phải viết 3 lần.

    Lần 1: So sánh 'a' và 'b'
    Lần 2: So sánh 'b' và 'c'
    Lần 3: So sánh 'c' và 'd'

    Tui nói vậy có hợp lý không lão?
    Stay hungry. Stay foolish.
    Design is not just what it looks like and feels like. Design is how it works.

Tags của đề tài này

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn