描述
给出两幅相同大小的黑白图像(用0-1矩阵)表示,求它们的相似度。若两幅图像在相同位置上的像素点颜色相同,则称它们在该位置具有相同的像素点。两幅图像的相似度定义为相同像素点数占总像素点数的百分比。
简单来说可以将这两幅图像看成两个数组(毕竟图像在计算机里储存也是以二进制的形式储存),比较两个数组,这两个数组在相同位置上的数字是否相同,相同则让计数器加1,最后让计数器除以数组中元素个数就是相似度了。
输入描述:
第一行包含两个整数m和n,表示图像的行数和列数,用单个空格隔开。1≤m≤100, 1≤n≤100。之后m行,每行n个整数0或1,表示第一幅黑白图像上各像素点的颜色,相邻两个数用单个空格隔开。之后m行,每行n个整数0或1,表示第二幅黑白图像上各像素点的颜色,相邻两个数用单个空格隔开。
输出描述:
一个实数,表示相似度(以百分比的形式给出),精确到小数点后两位。
示例1
输入:
3 3 1 0 1 0 0 1 1 1 0 1 1 0 0 0 1 0 0 1
输出:
44.44
思路
用m,n分别来表示行和列,然后需要输入两个二位数组来表示这两幅图像,利用计数器来计算两幅图像重复的数字个数,而两幅图像的相似度定义为相同像素点数占总像素点数的百分比,从而解决问题。
代码实现如下:
#include <stdio.h>
#define N