1.计算鞍点:
#include<iostream>
using namespace std;
int main() {
int ar[5][5];
int s = 0, t = 0,p=0;
//int a[5];
bool min = true;
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
cin >> ar[i][j];
}
}
for (int x = 0; x < 5; x++) {
min=true;
s = 0;
for (int y = 0; y < 5; y++) {
if (ar[x][y] > s) {
s = ar[x][y];
t = y;
}
}
//cout<<x<<' '<<t<<' '<<s<<' ';
for (int k = 0; k < 5; k++) {
if (ar[k][t] <= s) {
min = false;
//cout<<min<<endl;
break;
}
}
if (min) {
p=x;
break;
}
}
if(min){
cout<<p<<' '<<t<<' '<<s;
}else{
cout<<"not found";
}
}
2.计算相似度:
#include<iostream>
using namespace std;
int main() {
int m, n, s = 0;
//float sum;
cin >> m >> n;
int ar[m][n], br[m][n];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
cin >> ar[i][j];
}
}
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
cin >> br[i][j];
}
}
for (int x = 0; x < m; x++) {
for (int y = 0; y < n; y++) {
if (ar[x][y] == br[x][y]) {
s++;
}
}
}
printf("%.2f%%", (100.0 * s) / (m * n));
3.矩阵转置:
#include<iostream>
using namespace std;
int main() {
int m, n;
cin >> m >> n;
int ar[m][n];
int br[n][m];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
cin >> ar[i][j];
}
}
for (int x = 0; x < m; x++) {
for (int y = 0; y < n; y++) {
br[y][x] = ar[x][y];
}
cout << endl;
}
for (int x = 0; x < n; x++) {
for (int y = 0; y < m; y++) {
cout << br[x][y] << ' ';
}
cout << endl;
}
}
}