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

Đề tài: Cộng 1 row trong 1 ma trận như thế nào ?

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

    Mặc định Cộng 1 row trong 1 ma trận như thế nào ?

    Đầu tiên em có 1 mảng a[,]
    Giả sử em có 1 ma trận b
    0 1 4
    1 2 3
    5 6 7
    1 2 3

    Nếu như i=j thì a[i,j]= tổng hàng thứ i của ma trận b
    tức là a[0,0]=(0+1+4);
    a[1,1]=(1+2+3);
    a[2,2]=(5+6+7);
    a[3,3]=(1+2+3);
    các cột còn lại bằng 0

    Em làm như z nhưng a[i,j] của em nó chỉ toàn ra phép cộng của hàng i cuối cùng
    Code:
    for (int i = 0; i < n; i++)
                {
                    for (int k = 0; k < m; k++)
                    {
                            if (i == k)
                            {
                                int h = 0;
                                for (int f = 0; f < 4; f++)
                                {
                                        tong += Convert.ToInt32(b[f, h]);
                                        h++;
                                    }
                                    
                                    
                                }
                                c[i, k] = tong;
                                tong = 0;
                            
                            
                    }
                }
    Kết quả của đoạn code của em
    3 0 0 0
    0 3 0 0
    0 0 3 0
    0 0 0 3
    Đã được chỉnh sửa lần cuối bởi nkhanh90 : 26-10-2011 lúc 01:12 AM. Lý do: bổ sung câu hỏi

  2. #2
    Ngày gia nhập
    03 2009
    Bài viết
    267

    Trích dẫn Nguyên bản được gửi bởi nkhanh90 Xem bài viết
    Đầu tiên em có 1 mảng a[,]
    Giả sử em có 1 ma trận b
    0 1 4
    1 2 3
    5 6 7
    1 2 3

    Nếu như i=j thì a[i,j]= tổng hàng thứ i của ma trận b
    tức là a[0,0]=(0+1+4);
    a[1,1]=(1+2+3);
    a[2,2]=(5+6+7);
    a[3,3]=(1+2+3);
    các cột còn lại bằng 0

    Em làm như z nhưng a[i,j] của em nó chỉ toàn ra phép cộng của hàng i cuối cùng
    Code:
    for (int i = 0; i < n; i++)
                {
                    for (int k = 0; k < m; k++)
                    {
                            if (i == k)
                            {
                                int h = 0;
                                for (int f = 0; f < 4; f++)
                                {
                                        tong += Convert.ToInt32(b[f, h]);
                                        h++;
                                    }
                                    
                                    
                                }
                                c[i, k] = tong;
                                tong = 0;
                            
                            
                    }
                }
    Kết quả của đoạn code của em
    3 0 0 0
    0 3 0 0
    0 0 3 0
    0 0 0 3
    Code:
    int h = 0;
                                for (int f = 0; f < 4; f++)
                                {
                                        tong += Convert.ToInt32(b[f, h]);
                                        h++;
                                    }
                                    
                                    
                                }
                                c[i, k] = tong;
                                tong = 0;
    Bạn sai ở đoạn này ở đoạn này dù i hay k = bao nhiêu nó cũng chỉ ra 1 kết quả thôi. cái này ko liên quan i k theo mình suy nghĩ thì code lại như sau.

    Code:
    for (int i = 0; i < n; i++)
                {
                    for (int k = 0; k < m; k++)
                    {
                            if (i == k)
                            {
                                        tong = 0;
                                        for (int j=0;j<4;j++)
                                        {
    					tong += Convert.ToInt32(b[i,j]);
                                        }
    					c[i,k]=tong;
                            }    
                    }
                }

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

    Bạn check thử code này nhé, mình check kq ok rùi.
    Code:
    #include"conio.h"
    #include"stdio.h"
    void input(int a[][100],int *n,int *m)
    {
    	int i,j;
    	printf("\n Input n, m:");
    	scanf("%d%d",n,m);
    	for(i=0;i<*n;i++)
    	for(j=0;j<*m;j++)
    		{
    			printf("\nInput a[%d][%d]=",i,j);
    			scanf("%d",&a[i][j]);
    		}
    
    		for(i=0;i<*n;i++)
    	{
    		printf("\n");
    		for(j=0;j<*m;j++)
    			printf("%7d",a[i][j]);
    	}
    }
    void tien(int a[][100],int b[][100],int *n,int *m)
    {
    	int i,j,k,s;
    	for (i=0;i<*n;i++)
    	for(j=0;j<*m;j++)
    		{
    			s=0;
    			if(i==j)
    				{
    					for(k=0;k<*m;k++)
    						s=s+b[i][k];
    				}
    			a[i][j]=s;
    		}
    	printf("\n Hien thi mang");
    	for(i=0;i<*n;i++)
    	{
    		printf("\n");
    		for(j=0;j<*m;j++)
    			printf("%7d",a[i][j]);
    	}
    }
    void main()
    {
    	int a[100][100],b[100][100], n,m;
    	clrscr();
    	input(b,&n,&m);
    	tien(a,b,&n,&m);
    	getch();
    }

  4. #4
    Ngày gia nhập
    03 2009
    Bài viết
    267

    Đây là box C# mà cậu đi post code C là sao

  5. #5
    Ngày gia nhập
    08 2011
    Bài viết
    16

    Trích dẫn Nguyên bản được gửi bởi nhokviet Xem bài viết
    Đây là box C# mà cậu đi post code C là sao
    Hè hè, nhầm, cứ thế phang bừa. So sorryyyyyyyyyy

  6. #6
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Mặc định Cộng 1 row trong 1 ma trận như thế nào ?

    Duyệt ma trận 2 chiều thì dùng 2 vòng lặp. Tại sao lại phải dùng đến 3?

    Chỉ cần ở mỗi dòng, cộng từng pt của b và nhét vào vị trí [i,i] của a.

    Visual C# Code:
    1. for (int i=0; i < n; i++)
    2. {
    3.   a[i,i] = 0;
    4.   for (int j==0; j < m; j++)
    5.   {
    6.     if (i != j) a[i,j] = 0;
    7.     a[i,i] += Convert.ToInt32(b[i,j]);
    8.   }
    9. }

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

  1. Tính ma trận mũ của ma trận trong C++ như thế nào?
    Gửi bởi hidden 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: 16-09-2016, 12:30 PM
  2. Nhân hai ma trận trong C++ như thế nào?
    Gửi bởi phanvanngoc trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 16
    Bài viết cuối: 25-03-2013, 12:42 AM
  3. Trả lời: 0
    Bài viết cuối: 28-08-2012, 11:05 AM
  4. 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
  5. thắc mắt về con trỏ trong ma trận
    Gửi bởi nhatnha trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 08-06-2010, 08:57 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