Tính tổng trên 1 dòng/cột trong ma trận

1
21758

Bài toán: Tính tổng trên 1 dòng/cột trong ma trận

Input: ma trận a có m dòng, n cột, dòng/cột cần tính

Xử lý: gán tổng bằng không

Tổng =a[x][0]+a[x][1]+…+a[x][n-1]

X là dòng cần tìm

Tổng=a[0][x]+a[1][x]+…+a[m-1][x]

X là cột cần tìm

Ví dụ:

a[4][4]={(12,23,15,43)

(4,8,31,32,22)

(21,34,6,5)

(5,20,7,9)}

Tính dòng 1 thì a[2][0]=4;a[2][1]=8; a[2][2]=31;a[2][3]=22

Tổng= 4+8+31+22=65

Tính cột 3 thì a[0][3]=43;a[1][3]=22;a[2][3]=5;a[3][3]=9

Tổng=43+22+5+9=79

Output: Tổng dòng/cột

Hàm tính tổng trên 1 dòng

double tongdong(int a[][MAX], int m, int n,int x)
{
	double sum=0;
	for(int j=0;j<n;j++)
		sum=sum+a[x][j];
	return sum;
}

Hàm tính tổng trên 1 cột

double tongcot(int a[][MAX], int m, int n,int x)
{
	double sum=0;
	for(int i=0;j<n;i++)
		sum=sum+a[i][x];
	return sum;
}

Chương trình

#include<stdio.h>
#include<conio.h>
#include<math.h>
#define MAX 100
void nhapmang(int a[][MAX], int &m, int &n);
void xuatmang(int a[][MAX], int m, int n);
double tongdong(int a[][MAX], int m, int n,int x);
void main()
{
	int a[MAX][MAX], m,n,x;
	nhapmang(a,m,n);
	printf("\nnoi dung cua ma tran\n");
	xuatmang(a,m,n);
	printf("\nNhap dong can tinh: ");
	scanf("%d",&x);
	double t=tongdong(a,m,n,x);
	printf("\nTong dong %d la: %8.2f",x,t);
	printf("\nChuc Ban hoc tot");
	getch();
}
void nhapmang(int a[][MAX], int &m, int &n)
{
	int i,j;
	do
	{
		printf("nhap vao so dong cua ma tran: ");
		scanf("%d",&m);
	}while(m<=0);
	do
	{
		printf("nhap vao so cot cua ma tran: ");
		scanf("%d",&n);
	}while(n<=0);
	for( i=0;i<m;i++)
	{
		for( j=0;j<n;j++)
		{
			printf("\nso phan tu a[%d][%d]: ",i,j);
			scanf("%d",&a[i][j]);
		}
	}
}
void xuatmang(int a[][MAX], int m, int n)
{
	for(int i=0;i<m;i++)
	{
		for(int j=0;j<n;j++)
		{
			printf("%5d",a[i][j]);
		}
		printf("\n");
	}
}
double tongdong(int a[][MAX], int m, int n,int x)
{
	double sum=0;
	for(int j=0;j<n;j++)
		sum=sum+a[x][j];
	return sum;
}

 

Mình chia sẽ code này đê các bạn tham khảo các vấn đề tương tự. Tuy nhiên các bạn nên tự làm lại, đừng nên copy. Nếu gặp vấn đề gì khó khăn, hoặc thắc mắc gì, các bạn có thể đặt câu hỏi ở cuối bài. Mình sẽ giải đáp.

Chúc các bạn thành công!

xem thêm: Tính tổng/tích/trung bình các phần tử trên đường chéo chính

1 COMMENT

This site uses Akismet to reduce spam. Learn how your comment data is processed.