Announcement

Collapse
No announcement yet.

giúp em bài này với.

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • giúp em bài này với.

    PHP Code:
    // sap_xep_mang.cpp//
    #include "stdafx.h"
    #include "stdio.h"
    #include "conio.h"
    #define max 10
    void nhap(int,int);
    void xuat(int,int);
    void interchangesort(int,int);

     
    void nhap(int A[],int n)
     {
         
    int i;
         
    printf(" nhap vao A:\n");
         for(
    i=0;i<n;i++)
         {
             
    printf("A[%d]=:",i);
             
    scanf("%d",&A[i]);
         }
     }
     
    void xuat(int A[],int n)
     {
         
    int i;
         for(
    i=0;i<n;i++)
             
    printf("%2d",A[i]);
     }
     
    void interchangesort(int A[],int n)
     {
         
    int i,j,tam;
         for(
    i=0;i<n-1;i++)
         {
             for(
    j=i+1;j<n;j++)
             {
                 if(
    A[i]>A[j])
                
    swap(A[i],A[j]);
             }
         }
         
    printf("ket qua thu duoc la:");
         
    xuat(A,n);
     }    
     
    void main(void)
     {
         
    int A[max];
         
    int i,j,n;
         
    printf("nhap vao gia tri cua n:");
         
    scanf("%d",&n);
         
    nhap(A,n);
         
    xuat(A,n);
         
    interchangesort(A,n);
         
    printf("\n");
     } 
    3-4-2012 11-38-22 PM.png

  • #2
    Em quăng đâu cái hàm swap rồi, biến "tam" để đó mần gì =.='
    Với lại post bài nhờ người ta giúp cũng cần nói là giúp gì chứ em để vậy cho mọi người tự debug thì không nên :-"
    Cái này anh gõ trên Code::Block, em tự sửa cái include lại nhá .


    PHP Code:
    // sap_xep_mang.cpp//
    #include "stdio.h"
    #include "conio.h"
    #include "iostream"
    #define max 10
    void nhap(int,int);
    void xuat(int,int);
    void interchangesort(int,int);

     
    void nhap(int A[],int n)
     {
         
    int i;
         
    printf(" nhap vao A:\n");
         for(
    i=0;i<n;i++)
         {
             
    printf("A[%d]=:",i);
             
    scanf("%d",&A[i]);
         }
     }
     
    void xuat(int A[],int n)
     {
         
    int i;
         for(
    i=0;i<n;i++)
             
    printf("%2d",A[i]);
     }
     
    void interchangesort(int A[],int n)
     {
         
    int i,j,tam;
         for(
    i=0;i<n-1;i++)
         {
             for(
    j=i+1;j<n;j++)
             {
                 if(
    A[i]>A[j])
                  {
                   
    tam A[i]   ;
                   
    A[i]= A[j];
                   
    A[j] = tam ;
                  }

             }
         }
         
    printf("ket qua thu duoc la:");
         
    xuat(A,n);
     }
     
    int main()
     {
         
    int A[max];
         
    int i,j,n;
         
    printf("nhap vao gia tri cua n:");
         
    scanf("%d",&n);
         
    nhap(A,n);
         
    xuat(A,n);
         
    interchangesort(A,n);
         
    printf("\n");
         return 
    0;
     } 

    Comment


    • #3
      Code:
       void interchangesort(int A[],int n)
       {
           int i,j,tam;
           for(i=0;i<n-1;i++)
           {
               for(j=i+1;j<n;j++)
               {
                   if(A[i]>A[j])
                  swap(A[i],A[j]);
               }
           }
      cái chỗ swap(A[i],A[j]) là gọi hàm đổi vị trí của i và j, nếu muốn thực hiện thì bạn phải định nghĩa hàm swap
      còn ở trong hàm main bạn nên gọi hàm sắp xếp trước rồi mới gọi hàm xuất
      theo mình là vậy

      Comment


      • #4
        PHP Code:
         void interchangesort(int A[],int n
         { 
             
        int i,j,tam
             for(
        i=0;i<n-1;i++) 
             { 
                 for(
        j=i+1;j<n;j++) 
                 { 
                     if(
        A[i]>A[j]) 
         
        swap(A[i],A[j]);
                 } 
             } 
             
        printf("ket qua thu duoc la:"); 
             
        xuat(A,n); 
         } 
        Đoán code e làm chỗ swap(A[i],A[j]); là
        PHP Code:
        A[i] = A[j];
        A[j] = A[i]; 
        đúng không ?
        Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
        Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
        Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
        Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
        ...

        Comment


        • #5
          cảm ơn mấy anh nha.

          Comment


          • #6
            Mà sao bài trên của em không cài đặt hàm swap mà chạy được ra kết quả hay vậy??? Có phải em để chỗ đó là thay thế tạm thôi hả?

            Comment


            • #7
              copy code trong sách giải thuật ra chứ gì bạn? trong đó ng ta chỉ viết cái giải thuật sắp xếp và hàm swap là ng ta gọi vào thôi, còn bạn thì ko có hàm thì sao mà chạy đc, cái này ko cần dùng biến tạm, bạn bỏ biến tam đi và viết lại hàm sort như sau:
              void interchangesort(int A[],int n)
              {
              int i,j;
              for(i=0;i<n-1;i++)
              {
              for(j=i+1;j<n;j++)
              {
              if(A[i]>A[j])
              {
              A[i]=A[i]+A[j];
              A[j]=A[i]-A[j];
              A[i]=A[i]-A[j];
              }
              }
              }

              Comment

              LHQC

              Collapse
              Working...
              X