11.8-08求两个矩阵的和 描述 输入两个n行m列的矩阵A和B,输出它们的和A+B。 输入 第一行包含两个整数n和m,表示矩阵的行数和列数。1 using namespace std; int main() { inta100][1001,b[100][1001,c100[100: intij; int n,m; cin>n>m;h行m列 for(i=0;i>afi][j]; }
1 1.8--08 求两个矩阵的和 描述 输入两个 n 行 m 列的矩阵 A 和 B,输出它们的和 A+B。 输入 第一行包含两个整数 n 和 m,表示矩阵的行数和列数。1 using namespace std; int main() { int a[100][100],b[100][100],c[100][100]; int i,j; int n,m; cin >> n >> m; //n 行 m 列 for(i = 0 ; i > a[i][j]; } }
for(i=0;ibfi]lj]; } } for(i=0;i<n;i++) { for(j=0;j<m;j++) c[]=ai[]+b[i[i]; } for(i=0;i<n;i++) for(j=0;j<m;j++) cout<c[i]0]<""; } cout <endl; } 21.8--10求一个矩阵的转职矩阵 描述 输入一个n行m列的矩阵A,输出它的转置AT。 输入 第一行包含两个整数n和m,表示矩阵A的行数和列数。1<=n<=100,1<=m<=100。 接下来n行,每行m个整数,表示矩阵A的元素。相邻两个整数之间用单个空格隔开,每 个元素均在1~1000之间。 输出 m行,每行n个整数,为矩阵A的转置。相邻两个整数之间用单个空格隔开。 样例输入 33 123 456 789
for(i = 0 ; i > b[i][j]; } } for(i = 0 ; i < n ; i ++) { for(j = 0 ; j < m ; j ++) { c[i][j] = a[i][j]+b[i][j]; } } for(i = 0 ; i < n ; i ++) { for(j = 0 ; j < m; j ++) { cout << c[i][j] << " "; } cout << endl; } } 2 1.8---10 求一个矩阵的转职矩阵 描述 输入一个 n 行 m 列的矩阵 A,输出它的转置 AT。 输入 第一行包含两个整数 n 和 m,表示矩阵 A 的行数和列数。1 <= n <= 100,1 <= m <= 100。 接下来 n 行,每行 m 个整数,表示矩阵 A 的元素。相邻两个整数之间用单个空格隔开,每 个元素均在 1~1000 之间。 输出 m 行,每行 n 个整数,为矩阵 A 的转置。相邻两个整数之间用单个空格隔开。 样例输入 3 3 1 2 3 4 5 6 7 8 9
样例输出 147 258 369 #include using namespace std; int main() { inta100][1001,b100[100: int ij; int n,m; cin>n>m;lh行m列 for(i=0;i>afi]]; for(i=0;i<n;i+)/lm行m列 { for(j=0;j<m ;j++) b[i]]=a[]: } } for(i=0;i<m;i+)llm行n列 for(j=0;j<n;j++) cout<< b]<""; } cout <endl; 31.8-03求矩阵边缘的元素之和
样例输出 1 4 7 2 5 8 3 6 9 #include using namespace std; int main() { int a[100][100],b[100][100]; int i,j; int n,m; cin >> n >> m; //n 行 m 列 for(i = 0 ; i > a[i][j]; } } for(i = 0 ; i < n ; i ++) //n 行 m 列 { for(j = 0 ; j < m ; j ++) { b[j][i]= a[i][j]; } } for(i = 0 ; i < m ; i ++) //m 行 n 列 { for(j = 0 ; j < n; j ++) { cout << b[i][j] << " "; } cout << endl; } } 3 1.8--03 求矩阵边缘的元素之和
描述 输入一个整数矩阵,计算位于矩阵边缘的元素之和。所谓矩阵边缘的元素,就是第一行和最 后一行的元素以及第一列和最后一列的元素。 输入 第一行分别为矩阵的行数m和列数n(m using namespace std; int main() { inta[100][100] inti,j; int n,m; cin>>m>>n; int sum =0; for(i=0;i>af]]; } } for(i=0;i<m ;i++) { for(j=0;j<n;j++) if(i==0lli==m-1llj=0lj=n-1) sum sum +afi]j];
描述 输入一个整数矩阵,计算位于矩阵边缘的元素之和。所谓矩阵边缘的元素,就是第一行和最 后一行的元素以及第一列和最后一列的元素。 输入 第一行分别为矩阵的行数 m 和列数 n(m using namespace std; int main() { int a[100][100]; int i,j; int n,m; cin >> m >> n; int sum = 0; for(i = 0 ; i > a[i][j]; } } for(i = 0 ; i < m ; i ++) { for(j = 0 ; j < n ; j ++) { if(i == 0 || i == m-1 || j == 0 || j == n-1) { sum = sum +a[i][j];
cout using namespace std; int main() { int a[5][5]; inti,j; int n,m;
} } } cout using namespace std; int main() { int a[5][5]; int i,j; int n,m;
for(i=0;i>afi]j]; } } cin>>n>>m; fori=0;i<5,i++) int t; t=an-l][]; an-1][i=am-l][: a[m-1][i]=t; } fori=0:i<5:i++) for(j=0;j<5;j++) cout<<a[i][j]<<""; } cout <<endl: } } 51.8-06求两个矩阵的相似度 描述 给出两幅相同大小的黑白图像(用0-1矩阵)表示,求它们的相似度。 说明:若两幅图像在相同位置上的像素点颜色相同,则称它们在该位置具有相同的像素点。 两幅图像的相似度定义为相同像素点数占总像素点数的百分比。 输入 第一行包含两个整数m和n,表示图像的行数和列数,中间用单个空格隔开。1<=m<=100, 1<=n<=100。 之后m行,每行n个整数0或1,表示第一幅黑白图像上各像素点的颜色。相邻两个数之间 用单个空格隔开。 之后m行,每行n个整数0或1,表示第二幅黑白图像上各像素点的颜色。相邻两个数之间 用单个空格隔开
for(i = 0 ; i > a[i][j]; } } cin >> n >> m; for(i = 0 ; i < 5; i ++) { int t; t = a[n-1][i]; a[n-1][i] = a[m-1][i]; a[m-1][i] = t; } for(i = 0 ; i < 5 ; i ++) { for(j = 0 ; j < 5 ; j ++) { cout << a[i][j] << " "; } cout <<endl; } } 5 1.8--06 求两个矩阵的相似度 描述 给出两幅相同大小的黑白图像(用 0-1 矩阵)表示,求它们的相似度。 说明:若两幅图像在相同位置上的像素点颜色相同,则称它们在该位置具有相同的像素点。 两幅图像的相似度定义为相同像素点数占总像素点数的百分比。 输入 第一行包含两个整数 m 和 n,表示图像的行数和列数,中间用单个空格隔开。1 <= m <= 100, 1 <= n <= 100。 之后 m 行,每行 n 个整数 0 或 1,表示第一幅黑白图像上各像素点的颜色。相邻两个数之间 用单个空格隔开。 之后 m 行,每行 n 个整数 0 或 1,表示第二幅黑白图像上各像素点的颜色。相邻两个数之间 用单个空格隔开
输出 一个实数,表示相似度(以百分比的形式给出),精确到小数点后两位。 样例输入 33 101 001 110 110 001 001 样例输出 44.44 #include using namespace std; int main() { inta1011011,b101l[101 intij; int m,n; int count =0: cin>>m>>n; for(i=0;i>a[i]j]; } for(i=0;ib[i]] } } for(i=0;i<m ;i++) { for(j=0;j<n;j++)
输出 一个实数,表示相似度(以百分比的形式给出),精确到小数点后两位。 样例输入 3 3 1 0 1 0 0 1 1 1 0 1 1 0 0 0 1 0 0 1 样例输出 44.44 #include using namespace std; int main() { int a[101][101],b[101][101]; int i,j; int m,n; int count = 0; cin >> m >> n; for(i = 0 ; i > a[i][j]; } } for(i = 0 ; i > b[i][j]; } } for(i = 0 ; i < m ; i ++) { for(j = 0 ; j < n ; j ++)
if(afi]]==b(i]j]) count++; } cout
{ if(a[i][j] == b[i][j]) { count ++ ; } } } cout
using namespace std; inta[101][101; int main(){ int m,n; cin>>m>>n; for(int i=1;i>ali][j]; } } for(intj=1;j=1;i-) cout长<al]0]<""; cout<<endl; } } 71.8--05求矩阵的鞍点 描述 给定一个5*5的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点。 鞍点指的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值。 例如:在下面的例子中(第4行第1列的元素就是鞍点,值为8)。 113569 1247810 1056911 86472 1510112025 输入 输入包含一个5行5列的矩阵 输出 如果存在鞍点,输出鞍点所在的行、列及其值,如果不存在,输出"not found" 样例输入 113569 1247810 1056911 86472 1510112025 样例输出
using namespace std; int a[101][101]; int main(){ int m,n; cin >> m >> n; for(int i=1;i>a[i][j]; } } for(int j=1;j=1;i--){ cout<<a[i][j]<<" "; } cout<<endl; } } 7 1.8---05 求矩阵的鞍点 描述 给定一个 5*5 的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点。 鞍点指的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值。 例如:在下面的例子中(第 4 行第 1 列的元素就是鞍点,值为 8 )。 11 3 5 6 9 12 4 7 8 10 10 5 6 9 11 8 6 4 7 2 15 10 11 20 25 输入 输入包含一个 5 行 5 列的矩阵 输出 如果存在鞍点,输出鞍点所在的行、列及其值,如果不存在,输出"not found" 样例输入 11 3 5 6 9 12 4 7 8 10 10 5 6 9 11 8 6 4 7 2 15 10 11 20 25 样例输出
418 #include using namespace std; int main() { intA[5][5],n=5,i,j int flag; for(i=0:i>Afi][]; } int row,col: for(row=0;rowA[row][col]) col=;/∥记录下来 } flag=1; for(i=0,i<n,i+){/查找第col列最小值的行号,确定A[row[col是否为鞍点 if (A[i][col]<A[row][col]) {IIA[row][col不是鞍点 flag =0; break; } } if(lag)∥A[row][col是鞍点 { break: } if (flag==1) cout<<row+1<<""<<col+1<<""<<A[row][col]<endl;
4 1 8 #include using namespace std; int main() { int A[5][5], n=5, i, j; int flag; for (i=0; i> A[i][j]; } } int row, col; for (row=0; row A[row][col]) col = j; //记录下来 } flag = 1; for (i=0; i<n; i++){//查找第 col 列最小值的行号,确定 A[row][col]是否为鞍点 if (A[i][col] < A[row][col]) {//A[row][col]不是鞍点 flag = 0; break; } } if (flag) //A[row][col]是鞍点 { break; } } if (flag == 1) cout << row+1 << " " << col+1 << " " << A[row][col] << endl;