Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Tính hạng của một ma trận trong lập trình C

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

    Mặc định Tính hạng của một ma trận trong lập trình C

    Hôm trước abcde có gủi cho mình đoạn code sau. Nhưng không biết liên lạc lại với abcde như thế nào ? ( Vì cậu gởi mail thông qua 4rum mà lại không đưa địa chỉ ) Với lại thấy bài này cũng hay hay nên tớ đưa lên cho mọi người thảo luận có gì thì học hỏi ?

    1) tính hạng của ma trận vuông:
    C Code:
    1.       for(i=0;i<n;i++)
    2.           for(j=0;j<m;j++)
    3.           {  
    4.              printf("%d%d",i,j);
    5.              scanf("%d",a[i][j]);
    6.            }
    7.            while(k!=0)
    8.            {
    9.                  k<n;
    10.                  i==j;
    11.                  a[i][j]=a[i][i];
    12.                  a[i][j]=a[j][j];
    13.                  k++;
    14.            }
    15.            printf("hang cua ma tran la:%d",d);
    16.            getch();

    Ở phía trên mình đã khai báo biến và nhập số dòng ,
    số cột đầy đủ.

    Bây giờ mình có ý kiến như sau . Tinh thần thì theo đoạn code trên hạng của ma trận luôn luôn bằng một giá trị của biến "d" mặc dù trong code cậu chẳng khai báo d chỗ nào . Và dùng ở đâu . Thứ hai nữa là trong đoạn while tớ thật sự không hiểu cậu viết hàm while đó để làm gì tự nhiên kiểm tra i có trùng j hay không rồi gán rất lộn xộn .

    Để giải bài này cậu hãy đưa cái giải thuật mà cậu muốn làm thì anh em sẽ dựa trên đó để giúp đỡ cho cậu .

    Tiếp nữa là bài đổi hệ số thì cậu dựa vào bài đổi sang cơ số 2 để làm bài đổi sang 16 . Cố lên nhé . Sau nữa là nhắn tin qua yahoo vì tớ không thích đọc bài qua mail ok ! Hoặc có gì thì cứ viết lên 4 rum anh em sẽ giúp tận tình .

    CHúc cậu sớm thành công !
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

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

    uh, hình như chỉ đúng với ma trận tam giác , chéo thì phải. thuat toán mình là:
    Khai báo 1 biến đếm, cho 1 vòng lặp, chạy từ 1-->n, điều kiện là i=j, nếu gap a[i][j] và a[i][j]!=0 thì tăng biến đếm lên 1, thế thôi. Tức là mình đang làm công việc đếm số phần tử khác 0 trên đường chéo chính

  3. #3
    Ngày gia nhập
    12 2009
    Nơi ở
    internet 2/2010
    Bài viết
    2

    sưu tầm đó
    C Code:
    1. #include <iomanip.h>
    2. #include <conio.h>
    3. #include <stdio.h>
    4. void main()
    5. {
    6.    int i,j,k,t,n,m,hang;
    7.    float a[10][10],temp,luu;
    8.    clrscr();
    9.    cout <<"\nBan muon tinh hang ma tran cap n*m (1<=n,m<=10)";
    10.    do{
    11.       printf("\nHay nhap n=");
    12.       scanf("%d",&n);
    13.    }while(n>10||n<1);
    14.    do{
    15.       printf("\nHay nhap m=");
    16.       scanf("%d",&m);
    17.    }while(m>10||m<1);
    18.    //Nhap ma tran
    19.    printf("\nNhap vao cac he so cua ma tran[%d x %d]:\n",n,m);
    20.    for(i=0;i<n;i++){
    21.       for(j=0;j<m;j++){
    22.          printf("a[%d][%d]=",i+1,j+1);
    23.          scanf("%f",&a[i][j]);
    24.       }
    25.       printf("\n");
    26.    }
    27.    clrscr();
    28.    //In ra ma tran vua nhap vao
    29.    printf("\n Ma tran vua nhap vao la:\n\n");
    30.    for(i=0;i<n;i++){
    31.       for(j=0;j<m;j++){
    32.      printf("%3.2f\t",a[i][j]);
    33.       }
    34.       printf("\n");
    35.    }
    36.    i=0;j=0;
    37.    while(i<n&&j<m){
    38.       if(a[i][j]==0){
    39.      for(t=i+1;t<n;t++)
    40.         if(a[t][j]!=0){
    41.            for(k=i;k<m;k++){
    42.           temp=a[t][k];
    43.           a[t][k]=a[i][k];
    44.           a[i][k]=temp;
    45.            }
    46.            break;
    47.         }
    48.      if(t==n)j++;
    49.       }
    50.       if(a[i][j]!=0){
    51.      for(t=i+1;t<n;t++)
    52.         if(a[t][j]!=0){
    53.            luu=a[t][j];
    54.            for(k=j;k<m;k++)
    55.           a[t][k]=a[t][k]-a[i][k]*luu/a[i][j];
    56.         }
    57.      i++;j++;
    58.       }
    59.    }
    60.    printf("\nViet lai ma tran vua nhap vao :\n\n");
    61.    for(i=0;i<n;i++){
    62.       for(j=0;j<m;j++){
    63.      printf("%3.2f\t",a[i][j]);
    64.       }
    65.       printf("\n");
    66.    }
    67.    hang=n;
    68.    for(i=0;i<n;i++){
    69.       for(j=0;j<m;j++)
    70.      if(a[i][j]!=0)break;
    71.       if(j==m)hang--;
    72.    }
    73.    printf("\nHang cua ma tran la:%d",hang);
    74.    getch();  
    75. }

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

    Mình test thử, nó chạy không đúng bạn ơi.
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

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. Mảng trên C++ Tính TBC các phần tử của M.Trận B từ các số cho trước trong M.trận A
    Gửi bởi ngoc_le_iu_iu trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 13-03-2012, 06:22 AM
  3. Làm thế nào để xác định vị trí của ma trận đơn vị trong ma trận a
    Gửi bởi haiictu trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 10-11-2011, 10:57 AM
  4. Viết hàm con trả về nhiều giá trị trong ma trận?
    Gửi bởi tuan_uct trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 03-05-2011, 11:11 AM
  5. Biến trả lấy giá trị trả về trong Stored Procedure
    Gửi bởi iamonlining trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 6
    Bài viết cuối: 16-12-2009, 05:24 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