d. Nhập, xuất giá trị cho các phần tử mảng 2 chiều
128int i, j ; // các chỉ số trong vòng lặp
int i, j ; // các chỉ số trong vòng lặp
int amax, imax, jmax ; // số lớn nhất và chỉ số của nó cout << "Nhập số hàng và cột: " ; cin >> m >> n ; for (i=0; i<m; i++)
for (j=0; j<n; j++) {
cout << "a[" << i << "," << j << "] = " ; cin >> a[i][j] ; }
amax = a[0][0]; imax = 0; jmax = 0; for (i=0; i<m; i++)
for (j=0; j<n; j++) if (amax < a[i][j]) {
amax = a[i][j]; imax = i; jmax = j; }
cout << "Ma trận đã nhập\n" ;
cout << setiosflags(ios::showpoint) << setprecision(1) ; for (i=0; i<m; i++)
for (j=0; j<n; j++) {
if (j==0) cout << endl; cout << setw(6) << a[i][j] ; }
cout << "Số lớn nhất là " << setw(6) << amax << endl; cout << "tại vị trí (" << imax << "," << jmax << ")" ; return 0;
}
Ví dụ 7.6: Viết chương trình tính tổng mỗi hàng, mỗi cột của một ma trận có kích cỡ n x m, và nếu là ma trận vuông thì tính tổng đường chéo.
#include <iostream> #include<iomanip> using namespace std;
129 int main () int main ()
{
int A[10][10], m, n, x, y, sum=0;
//Tao mot ma tran A
cout << "Nhap so hang va so cot cua ma tran A : \n"; cin>>n>>m; cout << "Nhap cac phan tu cua ma tran A : \n";
for (x=1;x<n+1;++x) for (y=1;y<m+1;++y) cin >>A[x][y];
//Tim tong gia tri cua hang
for (x=1;x<n+1;++x) { A[x][m+1]=0; for (y=1;y<m+1;++y) A[x][m+1]=A[x][m+1]+A[x][y]; }
//Tim tong gia tri cua cot
for (y=1;y<m+1;++y) { A[n+1][y]=0; for (x=1;x<n+1;++x) A[n+1][y]+=A[x][y]; }
cout << "\nMa tran A:Tong hang (cot cuoi)" << " va Tong cot (hang cuoi) : \n"; for (x=1;x<n+1;++x) { for (y=1;y<m+2;++y) cout << A[x][y] << " "; cout << "\n"; }
//In tong moi hang
130 for (y=1;y<m+1;++y) for (y=1;y<m+1;++y) cout << A[x][y] << " "; cout << "\n"; if (m==n) { for (x=1; x<m+1; x++) for (y=1; y<n+1; y++) if (x==y) sum+=A[x][y]; else if (y==m-(x+1)) sum+=A[x][y]; }
cout << "Tong cac phan tu tren duong cheo la : " << sum << endl; return 0;
}