-
首先,通过
cin
从用户输入中获取两个整数n
和m
,分别表示数组的行数和列数。 -
接下来,定义两个二维数组
arr
和att
,分别用来存储原始数据和对比数据。数组的大小为n
行m
列。 -
使用嵌套的
for
循环,依次读取用户输入的原始数据到数组arr
中,和对比数据到数组att
中。 -
声明一个变量
k
并初始化为 0,用来记录相同元素的个数。 -
再次使用嵌套的
for
循环,遍历数组arr
和att
。对于每个位置上的元素,如果它们相等,则将k
加一。 -
最后,通过
cout
输出计算得到的相同元素的比例。使用fixed
和setprecision(2)
来设置输出流的参数,保留两位小数。
代码解析:
#include<iostream>
#include<cmath>
#include <iomanip>
using namespace std;
int main() {
int n,m;
cin>>n>>m;
int arr[n][m];
int att[n][m];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>arr[i][j];
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>att[i][j];
}
}
double k=0;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(arr[i][j]==att[i][j]){
k++;
}
}
}
cout << fixed << setprecision(2)<<k/(n*m)*100;
return 0;
}