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

Đề tài: tính định thức trong C

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

    Mặc định tính định thức trong C

    mình viết chương trình nhưng có lúc chạy đúng ,có lúc lỗi
    ý tưởng là sử dụng phương pháp khử gauss nhưng nếu làm tổng quát thì lỗi ở 2 lý do:
    - a[i][i] là số âm
    - a[i][i] là số 0
    mong các bạn giúp mình sửa 2 lỗi này
    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<math.h>
    int det=1,a[100][100],n;
    int max[100];
    void nhap(){
    
    printf("nhap so hang ");
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    for(int j=1;j<=n;j++)
    {printf("a[%d][%d]=  ",i,j);
    scanf("%d",&a[i][j]);
    }}
    
    void matrixtamgiac(int a[100][100], int n)
    {int det=1;
         for (int i=1; i<=n; i++)   
               for (int j=i+1; j<=n; j++)
                       {for(int k=i+1;k<=n;k++)
                         {
                         a[j][k]=a[j][k]-a[j][i]/a[i][i]*a[i][k];
                         }   
                         a[j][i]=0;
    }
    }
    void in(int x[100][100],int hang,int cot){
         for(int i=1;i<=hang;i++)
            {for(int j=1;j<=cot;j++)
              printf("%d   ",x[i][j]);
              printf("\n");
            }
          }
    
    main()
          {nhap();
          in(a,n,n);
          matrixtamgiac(a,n);
          printf("\n");
          in(a,n,n);
          for(int i=1;i<=n;i++)
          det=det*a[i][i];
          printf("\n\n%d ", det);
    
          getch();
           }

  2. #2
    Ngày gia nhập
    12 2010
    Nơi ở
    Hanoi, Vietnam, Vietnam
    Bài viết
    687

    a[i][i] =0 lỗi là do lúc chia bạn chia cho 0 , xét riêng trường hợp này ra xem nào !
    thêm nữa vòng lặp của mảng là phải chạy từ 0 nhé , chứ không phải là từ 1 đâu !

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

    Trích dẫn Nguyên bản được gửi bởi xuyenit55 Xem bài viết
    a[i][i] =0 lỗi là do lúc chia bạn chia cho 0 , xét riêng trường hợp này ra xem nào !
    thêm nữa vòng lặp của mảng là phải chạy từ 0 nhé , chứ không phải là từ 1 đâu !
    mình cũng biết lỗi do a[i][i]=0 nhưng nếu xét riêng ra thì phức tạp lại không có cách chung nhất mà mình cho chạy từ 1 để kết thúc =n chứ không nhỏ hơn n mà bạn

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