Từ 1 tới 10 trên tổng số 10 kết quả

Đề tài: Toán tử Điều Kiện "?" dùng như thế nào !!

  1. #1
    Ngày gia nhập
    11 2012
    Nơi ở
    Thành Phố Thây Ma
    Bài viết
    22

    Mặc định Toán tử Điều Kiện "?" dùng như thế nào !!

    Chào các bạn !!
    Mình sẽ nêu ra các đoạn code minh họa để các bạn nắm rõ điều mình cần hỏi ^^ :
    Code:
    #include <iostream.h>
    #include <conio.h>
    #define G " Hay nhap gia trị x+y , PC sẽ báo kết quả của x+y "
    int x;
    int y;
    int z;
    int m,n,h,k;
    main ()
    {
           clrscr();
            cout<<G;
            cout<<"\n";
            cout<<"Bạn hãy nhập giá trị của x=";
              cin>>x;
            cout<<"\n Ban hãy nhập giá tri của y=";
              cin>>y;
    cout<<"Kết quả x+y="<<x+y<<"\n";
         z=x+y;
         m=z++       //Nếu m=z++ thì nó sẽ ra 2 kết quả chênh lệch 1 đơn vị , vậy ta lấy đợn vị nào !
         n=++z;      //Nếu n=++z thì nó sẽ ra 2 đơn vị giống nhau , ta cần phải làm gì với đơn vị còn lại !
    k=(n>m) ? m:n;  //" k= (n>m) ? m:n; " cái này nó sẽ tính toán ra sao ?? dấu "?" & ":" có tác dụng gì ?
    cout<<"\n"; 
    cout<<"k="<<k;
    h=(n>m) ? n:m;   // < Cái này tương tự như trên >
    cout<<"\n";
    cout<<"h="<<h;
    getch();
    return 0;
    }
    mình đã thử và nhập x=5 & y=5 , kết quả nó cho là 10 ,
    -"k" kết quả nó cũng là 10 . // vì sao ?
    -"h" thì lại ra kết quả cao hơn "k" 2 đơn vị , nó được tác động từ ký tự nào .
    - Ý nghĩa & chức năng ký tự nó ra sao ?

  2. #2
    Ngày gia nhập
    02 2012
    Nơi ở
    hà nội
    Bài viết
    58

    Trích dẫn Nguyên bản được gửi bởi yuetakamashi Xem bài viết
    Chào các bạn !!
    Mình sẽ nêu ra các đoạn code minh họa để các bạn nắm rõ điều mình cần hỏi ^^ :
    Code:
    #include <iostream.h>
    #include <conio.h>
    #define G " Hay nhap gia trị x+y , PC sẽ báo kết quả của x+y "
    int x;
    int y;
    int z;
    int m,n,h,k;
    main ()
    {
           clrscr();
            cout<<G;
            cout<<"\n";
            cout<<"Bạn hãy nhập giá trị của x=";
              cin>>x;
            cout<<"\n Ban hãy nhập giá tri của y=";
              cin>>y;
    cout<<"Kết quả x+y="<<x+y<<"\n";
         z=x+y;
         m=z++       //Nếu m=z++ thì nó sẽ ra 2 kết quả chênh lệch 1 đơn vị , vậy ta lấy đợn vị nào !
         n=++z;      //Nếu n=++z thì nó sẽ ra 2 đơn vị giống nhau , ta cần phải làm gì với đơn vị còn lại !
    k=(n>m) ? m:n;  //" k= (n>m) ? m:n; " cái này nó sẽ tính toán ra sao ?? dấu "?" & ":" có tác dụng gì ?
    cout<<"\n"; 
    cout<<"k="<<k;
    h=(n>m) ? n:m;   // < Cái này tương tự như trên >
    cout<<"\n";
    cout<<"h="<<h;
    getch();
    return 0;
    }
    mình đã thử và nhập x=5 & y=5 , kết quả nó cho là 10 ,
    -"k" kết quả nó cũng là 10 . // vì sao ?
    -"h" thì lại ra kết quả cao hơn "k" 2 đơn vị , nó được tác động từ ký tự nào .
    - Ý nghĩa & chức năng ký tự nó ra sao ?
    cái này giống lệnh if else thôi mà, nhưng nó có tốc độ chạy nhanh hơn thì phải viết gọn nhẹ.
    Vidu : x>y? "x>y thực hiện 1 lệnh ở đây!" : " ngược lại x<y thì thực hiện 1 lệnh ở đây";
    + Quách Việt Kiên
    + Yahoo: Kaka_8x_vn
    + skype: kiencuongno1
    + Gmail: kiencuongno1@gmail.com
    Ai có thể free cho mình 50k thẻ điện thoại ko.

  3. #3
    Ngày gia nhập
    11 2012
    Nơi ở
    Thành Phố Thây Ma
    Bài viết
    22

    Excuse me , vẫn không hiểu =^^=

    kết quả của k= tại sao lại bằng 10 .

    và kết quả của h tại sao lại hơn k 2 đơn vị ^^!

    theo mình nghĩ thì cách tính của nó là thế này :

    x+y=5
    m=z++ thì là 5+1=6 , tức m=6
    n=++z thì n nó cũng bằng 6

    h=(n>m) như vậy 6 & 6 là = nhau làm sao lớn hơn hoặc bé .
    k=(n>m) cái này còn khó hiểu hơn , ban đầu thì như trên như so ra kết quả thì hơn 2 đơn vị ^^! chả hiểu sao nữa

    còn các dấu "?" là sao , dấu ":" theo mình nghĩ thì nó là 1 ký tự để chia cách các điều kiện trong 1 câu lệnh , nhưng mình chả thấy câu lệnh nào ^^!

    Mong bạn giải dá thắc mắc này giúp mình ^^! Thân
    Đã được chỉnh sửa lần cuối bởi yuetakamashi : 30-11-2012 lúc 02:04 AM.

  4. #4
    Ngày gia nhập
    02 2012
    Nơi ở
    hà nội
    Bài viết
    58

    Trích dẫn Nguyên bản được gửi bởi yuetakamashi Xem bài viết
    Excuse me , vẫn không hiểu =^^=

    kết quả của k= tại sao lại bằng 10 .

    và kết quả của h tại sao lại hơn k 2 đơn vị ^^!
    Thế mà ko hiểu!
    ví dụ:
    int x=5,y=3;
    int g=x>y?x:y;=> g=5;
    int h=x>y?y:x;=>h=3;

    vidu:
    int x=5,y=5;
    int g=x>y?x:0;
    =>g=0;
    + Quách Việt Kiên
    + Yahoo: Kaka_8x_vn
    + skype: kiencuongno1
    + Gmail: kiencuongno1@gmail.com
    Ai có thể free cho mình 50k thẻ điện thoại ko.

  5. #5
    Ngày gia nhập
    11 2012
    Nơi ở
    Thành Phố Thây Ma
    Bài viết
    22

    Ế , bạn ghi cái gì mình không hiểu =.=

    vấn đề là da đây ;

    6&6 làm sao phân biệt cái nào lớn cái nào bé @@ và n:m; với m:n; 2 cái này khác nhau chỗ nào ?

  6. #6
    Ngày gia nhập
    02 2012
    Nơi ở
    hà nội
    Bài viết
    58

    Mặc định Toán tử Điều Kiện "?" dùng như thế nào !!

    Trích dẫn Nguyên bản được gửi bởi yuetakamashi Xem bài viết
    Ế , bạn ghi cái gì mình không hiểu =.=
    Thế mà ko hiểu thì về tự đọc sách hỏi bác google đi.
    + Quách Việt Kiên
    + Yahoo: Kaka_8x_vn
    + skype: kiencuongno1
    + Gmail: kiencuongno1@gmail.com
    Ai có thể free cho mình 50k thẻ điện thoại ko.

  7. #7
    Ngày gia nhập
    11 2012
    Nơi ở
    Thành Phố Thây Ma
    Bài viết
    22

    Mà vấn đề này nữa : nó như thế này :
    n:m & m:n nó khác chỗ nào
    x=5 y=5 thì là 10 .
    z=x+y
    m=z++ thì nó bằng 6
    n=++z thì nó cũng bằng 6
    h=(n>m) ? m:n; nói ra kết quả 10 . vấn đề trên này nếu n>m th2i nó thể này 6>6 thì tại sao nó ra 10 được ?
    k=(n>m) ? n:m; nói ra kết quả là 12 . ^^! vấn đề là tại sao phép tính gần giống nhau nhưng kết quả lại ra khác nhau ???
    Đã được chỉnh sửa lần cuối bởi yuetakamashi : 30-11-2012 lúc 02:38 AM.

  8. #8
    Ngày gia nhập
    02 2012
    Nơi ở
    hà nội
    Bài viết
    58

    Trích dẫn Nguyên bản được gửi bởi yuetakamashi Xem bài viết
    n:m & m:n nó khác chỗ nào , mà vấn đề này nữa : nó như thế này :
    x=5 y=5 thì là 10 .
    z=x+y
    m=z++ thì nó bằng 6
    n=++z thì nó cũng bằng 6
    h=(n>m) ? m:n; nói ra kết quả 10 .
    k=(n>m) ? n:m; nói ra kết quả là 12 . ^^! vấn đề là tại sao phép tính gần giống nhau nhưng kết quả lại ra khác nhau ???
    Đành phải code cho bạn, bạn lười học quá.
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. int main()
    4. {
    5.     int x=5,y=5;
    6.     int z=x+y;
    7.     int m=z++;// gan m=z=10 sau do moi tang z=11
    8.     printf("\n%d",m);
    9.     int n=++z;// tang z len sau do moi gan n=z=12
    10.     printf("\n%d",n);
    11.     int h=n>m?m:n;
    12.     int k=n>m?n:m;
    13.     printf("\n%d\n%d",h,k);
    14.     getch();
    15. }
    + Quách Việt Kiên
    + Yahoo: Kaka_8x_vn
    + skype: kiencuongno1
    + Gmail: kiencuongno1@gmail.com
    Ai có thể free cho mình 50k thẻ điện thoại ko.

  9. #9
    Ngày gia nhập
    11 2012
    Nơi ở
    Thành Phố Thây Ma
    Bài viết
    22

    Trích dẫn Nguyên bản được gửi bởi kienquach Xem bài viết
    Đành phải code cho bạn, bạn lười học quá.
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. int main()
    4. {
    5.     int x=5,y=5;
    6.     int z=x+y;
    7.     int m=z++;// gan m=z=10 sau do moi tang z=11
    8.     printf("\n%d",m);
    9.     int n=++z;// tang z len sau do moi gan n=z=12
    10.     printf("\n%d",n);
    11.     int h=n>m?m:n;
    12.     int k=n>m?n:m;
    13.     printf("\n%d\n%d",h,k);
    14.     getch();
    15. }
    thế giá trị của n=1 à( Nhưng ban đầu mình đâu có khai báo là n=1 đâu ) , tăng z len tức là lên 11 rồi , gắn thêm n=1 thì nó = 12 phai không ??
    mình không phải lười học đâu , cái này làm mình nhức đầu suốt 2 ngày liền , nên mới ức chế post lên mong tìm hiểu rõ về nó ^^ mình không muốn thiếu 1 chi tiết nào mà !! Thân

  10. #10
    Ngày gia nhập
    11 2011
    Bài viết
    152

    1.
    Code:
    x = <biểu thức A> ? <biểu thức B> : <biểu thức C>
    Nghĩa là tính kết quả biểu thức A, nếu khác 0 thì x = biểu thức B; nếu bằng 0 thì x = biểu thức C.

    2.ví dụ
    Code:
     h=n>m?m:n;
    nghĩa là xem thử biểu thức so sánh (n > m) bằng mấy; nếu n lớn hơn m thì biểu thức nay bằng 1 (Nếu không hiểu thì xem phần 3); nếu n bé hơn m thì biểu thức này bằng 0. Vậy nếu n lớn hơn m thì h = m, nếu n bé hơn m thì h = n

    3. Các biểu thức so sánh có kết quả là 1 (nếu đúng) hoặc 0 (nếu sai).

    4. ++z nghĩa là tăng z lên 1 rồi mới gán nó vào trong biểu thức, z++ nghĩa là gán z vào trong biểu thức rồi mới tăng lên 1

Các đề tài tương tự

  1. nghĩa của 3 từ "principals", "artifacts", "securables" là như thế nào?
    Gửi bởi ntbao trong diễn đàn English for IT | Tiếng anh cho dân CNTT
    Trả lời: 2
    Bài viết cuối: 02-09-2017, 06:36 PM
  2. Lỗi"error C2275: 'T' : illegal use of this type as an expression" khi dùng "list<T>::iterator it"
    Gửi bởi doicanhden trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 6
    Bài viết cuối: 19-01-2012, 01:59 AM
  3. Trả lời: 4
    Bài viết cuối: 14-09-2011, 11:01 PM
  4. Problems : " recover tree " with input as " preorder" and "inorder"
    Gửi bởi HoangManhHa1991 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 16
    Bài viết cuối: 13-04-2011, 10:19 PM
  5. Lập trình C++ khai báo biến "int" "float" khác nhau như thế nào? (giúp em gấp)
    Gửi bởi hacphieu trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 02-04-2011, 10:57 AM

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