cout输出精确到小数点后两位
这篇文章发布已经超过两年,部分工具、版本或观点可能已经变化,请结合最新信息判断。
【题目描述】
给出两幅相同大小的黑白图像(用 0表示黑,1表示白)表示,求它们的相似度。说明:若两幅图像在相同位置上的像素点颜色相同,则称它们在该位置具有相同的像素点。两幅图像的相似度定义为相同像素点数占总像素点数的百分比。
【输入】
第一行包含两个整数 m 和 n,表示图像的行数和列数,中间用单个空格隔开。1≤ m≤ 100, 1≤ n≤ 100。
之后 m 行,每行 n 个整数,表示第一幅黑白图像上各像素点的颜色。相邻两个数之间用单个空格隔开。
之后 m 行,每行 n 个整数,表示第二幅黑白图像上各像素点的颜色。相邻两个数之间用单个空格隔开。
【输出】
两幅图像的相似度,结果保留小数点后两位。
For example:
Input
Result
3 3
1 0 1
0 0 1
1 1 0
1 1 0
0 0 1
0 0 1
44.44
答案
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int a[500][500];
int b[500][500];
int m,n,j,k;
//输入部分
cin >> n >> m;
for(j=1;j<=n;j++)
{
for(k=1;k<=m;k++)
{
cin >> a[j][k];
}
}
for(j=1;j<=n;j++)
{
for(k=1;k<=m;k++)
{
cin >> b[j][k];
}
}
//计算部分
float cnt=0;
for(j=1;j<=n;j++)
{
for(k=1;k<=m;k++)
{
if(a[j][k]==b[j][k])
cnt++;
}
}
cnt = cnt * 100;
//输出部分
cout << fixed << setprecision(2) << cnt/(m*n);
return 0;
}
输出精确的方式:
#include cout << fixed << setprecision(2) << a; //其中fixed自动补0,setprecision(2)是精确到小数点后两位
评论区已延迟加载滑到评论区附近时会自动加载,也可以现在手动打开。



