Không hiểu sao cái tổng của mình cứ bị thừa 2 đơn vị. Ví dụ tổng là 16 thì nó xuất 18. Ae xem hộ mình với.
#include <stdio.h>
int a[100][100];
int m, n;
void nhapMaTran(int x[][100], int &m, int &n)
{
do
{
printf("Nhap vao m va n cho ma tran vuong: ");
scanf("%d%d", &m, &n);
}
while(m<=0 || n<=0 || m != n);
for(int i=0; i<m; i++)
{
for(int j=0; j<n; j++)
{
printf("x[%d][%d]=", i, j);
scanf("%d", &x[i][j]);
}
}
}
void xuatMaTran(int x[][100], int m, int n){
printf("\nMa tran: \n");
for(int i=0; i<m; i++){
for(int j=0; j<n; j++){
printf("%d\t", a[i][j]);
}
printf("\n");
}
}
int SumDuongcheochinh (int a[][100], int m, int n)
{
int s, i, j;
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
if (i == j)
s = s + a[i][j];
}
}
return s;
}
int main()
{
nhapMaTran(a, m, n);
xuatMaTran(a, m, n);
printf ("Tong cac phan tu duong cheo chinh: %d", SumDuongcheochinh (a, m, n));
}