Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 19 kết quả

Đề tài: Kiểm tra xem có phải là ma trận đơn vị

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

    Exclamation Kiểm tra xem có phải là ma trận đơn vị

    Code:
    // De: nhap vao mot ma tran, kiem tra co phai la ma tran don vi khong va in ra ma tran chuyen vi
    //Chi can xem giup minh doan kiem tra ma tran don vi thoi
    
    #include<stdio.h>
    #include<conio.h>
    #include<ctype.h>
    #define mx 10
    
    int main()
    {
        int m,n,i,j,x,a[mx][mx],tong,tich;
        char c;
        do
        {
        printf("\n nhap ma tran can kiem tra vao");
        printf("\n m=");scanf("%d",&m);
        printf("\n n=");scanf("%d",&n);
        for(i=0 ; i<m ; i++)
        for(j=0 ; j<n ; j++)
        {
                printf("\n a[%d][%d] =",i,j);
                scanf("%d",&x);
                a[i][j]=x;
        }
        // In ma tran 
        for (i=0 ; i<m ; i++)
        {
            printf("\n");
            for (j=0 ; j<n ; j++)
            printf("\t%d",a[i][j]);
        }
        // Kiem tra ma tran don vi
        while(m==n)
        {
                    tong=0;tich=1;
                   for(i=0;i<n;i++)
                   for(j=0;j<n;j++)
                   {
                                  
                                   tong+=a[i][j];
                                   tich*=a[i][i];
                   }
                   
                   if((tong==n)&&(tich==1))
                   printf("\n Day la ma tran don vi");
        }
        printf("\n day khong phai la ma tran don vi");
        
        
        // Tim ma tran chuyen vi
        printf("\n Ma tran chuyen vi cua ma tran tren la");
        for(j=0;j<n;j++)
        {
                        printf("\n");
                        for(i=0;i<m;i++)
                        printf("\t%d",a[i][j]);
        }
        printf("\n\tBan co muon kiem tra mot ma tran khac khong: C/K");
        scanf("%c",&c);
        c=getch();
        }
        while((toupper(c)=='c')||(toupper(c)=='C'));
    }
    Đã được chỉnh sửa lần cuối bởi phantuan_th : 14-04-2007 lúc 04:10 PM. Lý do: viết bằng code đây
    KID

  2. #2
    Ngày gia nhập
    04 2007
    Bài viết
    5

    à, còn nữa!!!!
    Các bác chỉ giùm em làm cách nào để post code lên cái. không cứ gửi nguyên cả bài C thế này không đẹp lắm.
    KID

  3. #3
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Khoan cậu cho tớ biết cái ma trân đơn vị là sao thử coi !

  4. #4
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Trích dẫn Nguyên bản được gửi bởi kidkid Xem bài viết
    Khoan cậu cho tớ biết cái ma trân đơn vị là sao thử coi !
    Là ma trận có dạng này nè:
    1 0 0 0
    0 1 0 0
    0 0 1 0
    0 0 0 1

    Lưu ý: ma trận đơn vị là ma trận vuông!

  5. #5
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Thế thì chỉ cần kiểm tra thế này thôi nè :
    int tong=0;tich=1;
    for(int i=0;i<n;i++)
    for(INT J=0;J<N;J++)
    { tong+=a[i][j];
    if(i==j)tich*=a[i][j];
    }
    if(tong == n && tich== 1)
    return 1;
    thía là xong rồi

  6. #6
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Mặc định Kiểm tra xem có phải là ma trận đơn vị

    Hàm để kiểm tra ma trận đơn vị đây, bạn test thử nhé:
    C Code:
    1. void MTDonVi(int a[],int n) //n la cap cua ma tran
    2. {
    3.    int i,j;
    4.    int res1=0;  //result
    5.    int res2=0;
    6.    for(i=0;i<n;i++)
    7.    {
    8.       for(j=0;j<n;j++)
    9.            if (i==j)  
    10.               if (a[i][j]==1) res1=1;
    11.               else
    12.               {
    13.                      res1=0;
    14.                      break;
    15.               }
    16.           else if (a[i][j]==0) res2=1;
    17.                 else
    18.                 {
    19.                      res2=0;
    20.                      break;
    21.                 }
    22.    }
    23. if (res1==1&&res2==1) printf("\nDay la ma tran don vi!");
    24. else printf("\nKhong phai ma tran don vi!");  
    25. }

    Hi, bài này mình demo trên C#, hổng biết chuyển qua C có bị sai không, bạn demo lại dùm mình nhé, có gì sai thì reply cho mình

  7. #7
    Ngày gia nhập
    04 2007
    Bài viết
    17

    PHP Code:
    // Kiem tra ma tran don vi
        
    while(m==n)
        {
                    
    tong=0;tich=1;
                   for(
    i=0;i<n;i++)
                   for(
    j=0;j<n;j++)
                   {
                                  
                                   
    tong+=a[i][j];
                                   
    tich*=a[i][i];
                   }
                   
                   if((
    tong==n)&&(tich==1))
                   
    printf("\n Day la ma tran don vi");
        }
        
    printf("\n day khong phai la ma tran don vi"); 
    ----------
    Sao lại là while(m==n) nhỉ . Lặp ko bao giờ dừng nếu m==n ?? . Thay bằng if là giải quyết xong mà .
    Mình sửa thành thế này :
    PHP Code:
    if(m==n)
        {
                    
    tong=0;tich=1;
                   for(
    i=0;i<n;i++)
                   for(
    j=0;j<n;j++)
                   {
                                  
                                   
    tong+=a[i][j];
                                   
    tich*=a[i][i];
                   }
                   
                   if((
    tong==n)&&(tich==1))
                   
    printf("\n Day la ma tran don vi");
        }
    else
        
    printf("\n day khong phai la ma tran don vi"); 

  8. #8
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Trích dẫn Nguyên bản được gửi bởi xtrung Xem bài viết
    [php]
    Mình sửa thành thế này :
    PHP Code:
    if(m==n)
        {
                    
    tong=0;tich=1;
                   for(
    i=0;i<n;i++)
                   for(
    j=0;j<n;j++)
                   {
                                  
                                   
    tong+=a[i][j];
                                   
    tich*=a[i][i];
                   }
                   
                   if((
    tong==n)&&(tich==1))
                   
    printf("\n Day la ma tran don vi");
        }
    else
        
    printf("\n day khong phai la ma tran don vi"); 
    Giả sử mình nhập ma trận sau:
    1 0 0
    0 0 1
    0 0 1
    thì với đoạn code trên, mình nghĩ nó vẫn in ra là ma trận đơn vị!!!!

  9. #9
    Ngày gia nhập
    04 2007
    Bài viết
    17

    ko in ra đâu
    cái 1 0 0
    0 0 1
    0 0 1
    nó báo là ko phải ma trận chuyển vị
    Đã được chỉnh sửa lần cuối bởi xtrung : 14-04-2007 lúc 11:01 PM.

  10. #10
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Trích dẫn Nguyên bản được gửi bởi xtrung Xem bài viết
    if(m==n)
    {
    tong=0;tich=1;
    for(i=0;i<n;i++)
    for(j=0;j<n;j++)
    {

    tong+=a[i][j];
    tich*=a[i][i];
    }

    if((tong==n)&&(tich==1))
    printf("\n Day la ma tran don vi");
    }
    else
    printf("\n day khong phai la ma tran don vi");
    Với đoạn code trên, mình dám cá là 2 ma trận sau đây vẫn tương đồng:
    1 0 0
    0 1 0
    0 0 1

    1 0 0
    0 1 0
    0 1 0
    vì bạn chỉ nghĩ đơn giản là ma trận đơn vị sẽ có tong=n và tich=1
    - Kế đến, mình cũng chắc là nếu cậu nhập vào ma trận đơn vị, tong=n nhưng tich sẽ luôn khác 1, vì sao ư? vì 0 nhân với bất cứ số nào cũng bằng 0. Trong khi cậu lại xét tong==n&&tich==1, sẽ chẳng bao giờ ra kết quả đúng.
    Đấy là mình chưa nói đến vụ 2 ma trận như ở trên nhé.

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

  1. [Hỏi] Cách nhân 2 ma trận với các phần tử của ma trận đợc để trong mảng 1 chiều.
    Gửi bởi code_c trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 4
    Bài viết cuối: 23-09-2012, 10:24 PM
  2. bán chung cư số 7 Trần Phú hà đông,-chính chủ bán căn hộ số 7 trần phú, giá rẻ
    Gửi bởi haiphuong8888 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 03-08-2012, 03:41 PM
  3. Mỹ phẩm Thu Huyền: Bộ mỹ phẩm làm trắng, trị nám Dương Quý Phi - call 0906.260.160
    Gửi bởi kimkim8910 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 09-03-2012, 11:38 PM
  4. Mỹ phẩm Thu Huyền: Bộ mỹ phẩm dưỡng trắng da The face shop - call 0906.260.160
    Gửi bởi kimkim8910 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 09-03-2012, 05:52 PM
  5. Cho ma trận A(mxn) với phần tử thực.Liệt kê các phần tử ma trận A theo thứ tự tăng dần
    Gửi bởi rong3sao trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 07-04-2009, 06:28 PM

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