2 条题解
-
2
每人发题解?我来发一个吧
#include<iostream> #include<cstdio> #include<cstdlib> using namespace std; #define N 105 int a[N][N],b[N][N]; int main() { int m,n,x=0; cin>>m>>n; for(int i=0;i<m;i++) for(int j=0;j<n;j++) cin>>a[i][j]; for(int i=0;i<m;i++) for(int j=0;j<n;j++) { cin>>b[i][j]; if(a[i][j]==b[i][j]) x++; } printf("%.2f",x/(double)(m*n)*100); return 0; }
已AC,放心食用!先赞后看,养成好习惯!
-
0
首先定义两个变量n, m用来存储长和宽,在定义两个数组pic1, pic2用来存储图片,依次输入n和m, 再根据n和m的值输入图片。 定义一个返回类型为bool的函数same(bool a, bool b)用来检测图片中相同位置的两个值是否相等,如果相等,就将similarity(中文意思是相似度)加上100.0 / (n * m)(即每个点对应的图片相似度),最后用iomanip库中的fixed和setprecision输出结果。 代码如下:
#include <iostream> #include <iomanip> using namespace std; bool same(bool a, bool b) { return (a && b) || !(a || b); } int main() { int n, m, pic1[105][105], pic2[105][105]; double similarity = 0; cin >> n >> m; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { cin >> pic1[i][j]; } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { cin >> pic2[i][j]; } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { if (same(pic1[i][j], pic2[i][j])) { similarity += 100.0 / double(n * m); } } } cout << fixed << setprecision(2) << similarity; return 0; }
- 1
信息
- ID
- 404
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 3
- 标签
- 递交数
- 62
- 已通过
- 32
- 上传者