(a) Hãy đếm số phần tử có giá trị lớn nhất (Max) và nhỏ nhất (Min) trong ma trận Am đồng thời hãy xuất ra màn hình các vị trí (i,j) với A(i,j) = Max, hoặc A(i,j)=Min.
(b) Trong ma trận A hãy thay thế giá trị của các phần tử có giá trị bằng Max hoặc bằng Min bằng trung bình cộng của Max và Min.
Bài giảiTải File CPP: http://codepad.org/BRfEth1B/raw.cpp
#include<stdio.h>
int nhapmatran(float a[][4], int n)
{
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
{
printf("a[%d][%d]= ", i, j);
scanf("%f", &a[i][j]);
}
}
int xuatmatran(float a[][4], int n)
{
for(int i=1; i<=n; i++)
{
for(int j=1;j<=n; j++)
printf("%.1f\t", a[i][j]);
printf("\n");
}
}
int timmax(float a[][4], int n)
{
int max;
//Tim gia tri max
max=a[1][1];
for(int i=1; i<=n; i++)
{
for(int j=0;j<n; j++)
{
max=max>a[i][j+1]?max:a[i][j+1];
}
}
//Tim vi tri
for(int i=1; i<=n; i++)
for(int j=1;j<=n; j++)
if(a[i][j]==max)
{
printf("Gia tri max cua ma tran la %d o vi tri a[%d][%d]\n", max, i, j);
}
return max;
}
int timmin(float a[][4], int n)
{
int min;
min=a[1][1];
//Tim min
for(int i=1; i<=n; i++)
{
for(int j=0;j<n; j++)
{
min=min<a[i][j+1]?min:a[i][j+1];
}
}
//Tim max
for(int i=1; i<=n; i++)
for(int j=1;j<=n; j++)
if(a[i][j]==min)
{
printf("Gia tri min cua ma tran la %d o vi tri a[%d][%d]\n", min, i, j);
}
return min;
}
int thaydoi(float a[][4], int n, float tong, int max, int min)
{
for(int i=1; i<=n; i++)
for(int j=1;j<=n; j++)
{
if(max==a[i][j])
{
a[i][j]=tong;
}
if(min==a[i][j])
{
a[i][j]=tong;
}
}
}
int main()
{
int n;
printf("Nhap ma tran vuong n: "); scanf("%d", &n);
float a[n][4];
nhapmatran(a, n);
xuatmatran(a, n);
int max, min;
float tong;
max=timmax(a, n);
min=timmin(a, n);
tong=(1.0*(max+min))/2;
printf("\ntong %.2f\n\n", tong);
thaydoi(a, n, tong, max, min);
xuatmatran(a, n);
}
int nhapmatran(float a[][4], int n)
{
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
{
printf("a[%d][%d]= ", i, j);
scanf("%f", &a[i][j]);
}
}
int xuatmatran(float a[][4], int n)
{
for(int i=1; i<=n; i++)
{
for(int j=1;j<=n; j++)
printf("%.1f\t", a[i][j]);
printf("\n");
}
}
int timmax(float a[][4], int n)
{
int max;
//Tim gia tri max
max=a[1][1];
for(int i=1; i<=n; i++)
{
for(int j=0;j<n; j++)
{
max=max>a[i][j+1]?max:a[i][j+1];
}
}
//Tim vi tri
for(int i=1; i<=n; i++)
for(int j=1;j<=n; j++)
if(a[i][j]==max)
{
printf("Gia tri max cua ma tran la %d o vi tri a[%d][%d]\n", max, i, j);
}
return max;
}
int timmin(float a[][4], int n)
{
int min;
min=a[1][1];
//Tim min
for(int i=1; i<=n; i++)
{
for(int j=0;j<n; j++)
{
min=min<a[i][j+1]?min:a[i][j+1];
}
}
//Tim max
for(int i=1; i<=n; i++)
for(int j=1;j<=n; j++)
if(a[i][j]==min)
{
printf("Gia tri min cua ma tran la %d o vi tri a[%d][%d]\n", min, i, j);
}
return min;
}
int thaydoi(float a[][4], int n, float tong, int max, int min)
{
for(int i=1; i<=n; i++)
for(int j=1;j<=n; j++)
{
if(max==a[i][j])
{
a[i][j]=tong;
}
if(min==a[i][j])
{
a[i][j]=tong;
}
}
}
int main()
{
int n;
printf("Nhap ma tran vuong n: "); scanf("%d", &n);
float a[n][4];
nhapmatran(a, n);
xuatmatran(a, n);
int max, min;
float tong;
max=timmax(a, n);
min=timmin(a, n);
tong=(1.0*(max+min))/2;
printf("\ntong %.2f\n\n", tong);
thaydoi(a, n, tong, max, min);
xuatmatran(a, n);
}