30/09/2018, 19:57

Bài sắp xếp bị lỗi

mình nhập vào a<b là nó xếp bị lỗi à.

Interns viết 21:58 ngày 30/09/2018

Trước tiên thì bạn hãy đọc cái này để biết cách post 1 đoạn code lên đây

Làm sao để có thể hiển thị syntax highlighting bằng markdown? Các bạn phải đánh dấu ``` như ví dụ dưới đây Chú ý, dấu ``` được tạo ra bởi nút nằm bên trái số 1 trên bàn phím, nút này sẽ là ~ khi bấm giữ Shift Ví dụ cho C Nội dung: ``` void main() { } ``` Và đừng quên ``` ở cuối Kết quả void main() { } Ví dụ cho Pascal Nội dung: ``` Program HelloWorld; Begin WriteLn('Hello world!') {no ";" is required after the last statement of a block - adding one adds a "null stateme…

Sau đó thì hãy suy nghĩ đặt 1 câu hỏi thông minh, bạn quăng code lên với tiên đề không rõ ràng nên chỉnh sửa lại tiên đề và nội dung để người đọc biết lỗi là lỗi chỗ nào? với thông báo lỗi là gì?

Người khác cũng muốn giúp bạn nhưng người ta ngại đọc hết code của bạn để biết nó lỗi chỗ nào và sau đó lại sửa lỗi cho bạn. Thay vì bạn chỉ rõ cho người ta biết là nó lỗi chỗ đó thì có dễ hơn không?

P/S: Nói để rút kim nghiệm thôi chứ không có gì khác

viết 22:03 ngày 30/09/2018

Bạn chưa vét hết các điều kiện có thể xảy ra. Thêm nữa là làm kiểu này thời gian tính toán lâu nên bạn cân nhắc nghĩ ra cách giải tối ưu hơn. Phần xét bạn có thể tham khảo:

   //truong hop a<=b<=c
   if((a<=b)&&(b<=c)){
       printf("gia tri sau khi xep: %d, %d, %d\n",a,b,c);
   }
   //truong hop a>b, b<=c
   else if((a>b)&&(b<=c)){
       //doi gia tri a,b
       t=a; a=b; b=t;
       //so sanh lai b va c;
       if(b>c){
          t=b; b=c; c=t;
          printf("gia tri sau khi xep: %d, %d, %d\n",a,b,c);
       }
       else{
          printf("gia tri sau khi xep: %d, %d, %d\n",a,b,c);
       }
   }
   //truong hop a>b>c
   //truong hop nay c la gia tri nho nhat
   else if((a>b)&&(b>c)){
       //doi cho a, b;
       t=a; a=b; b=t;
       //sau khi doi thi a<b,b>c
       //tiep tuc doi cho b va c
       t=b; b=c; c=t;
       //luc nay a>b, b<c
       //tiep tuc doi cho a va b
       t=a; a=b; b=t;
       //luc nay thi a<b<c
       //in ra
       printf("gia tri sau khi xep: %d, %d, %d\n",a,b,c);
   }
   //truong hop nay la a<=b, b>c
   else{
      //doi cho b va c
      t=b; b=c; c=t;
      //luc nay gia tri lon nhat la b duoc dua ra sau cung
      //tiep theo la so sanh gia tri a va c
      if(a>b){
         //doi cho a, c va in ra
         t=a; a=b; b=t;
         printf("gia tri sau khi xep: %d, %d, %d\n",a,b,c);
      }
      //a<=c
      else{
          //in ra
          printf("gia tri sau khi xep: %d, %d, %d\n",a,b,c);
      }
   }
BaXmen viết 22:08 ngày 30/09/2018

Mình sẽ rút kinh nghiệm. Cảm ơn bạn

Bài liên quan
0