第一行包含两个整数m和n,表示图像的行数和列数,用单个空格隔开。1≤m≤100, 1≤n≤100。之后m行,每行n个整数0或1,表示第一幅黑白图像上各像素点的颜色,相邻两个数用单个空格隔开。之后m行,每行n个整数0或1,表示第二幅黑白图像上各像素点的颜色,相邻两个数用单个空格隔开。
一个实数,表示相似度(以百分比的形式给出),精确到小数点后两位。
3 3 1 0 1 0 0 1 1 1 0 1 1 0 0 0 1 0 0 1
44.44
int main() {
int i, j, n, m;
int numA[20][20];
int numB[20][20];
int right = 0;
scanf(" %d %d", &n, &m);
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
scanf(" %d", &numA[i][j]);
}
}
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
scanf(" %d", &numB[i][j]);
}
}
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
if (numA[i][j] == numB[i][j])
{
right++;
}
}
}
int sums = n * m;
float about = (float)right / 1.0 / sums * 100;
printf("%.2f", about);
return 0;
}//系统最后一个算例会出错,3 1 1 0 0 0 1 1,会出错,我也找不到原因 #include <stdio.h>
int main() {
int m=0,n=0;
int i,j;
scanf("%d %d",&m,&n);
int arr1[101][101]={0};
int arr2[101][101]={0};
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
scanf("%d",&arr1[i][j]);
}
}
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
scanf("%d",&arr2[i][j]);
}
}
int seed=0;
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
if(arr1[i][j]==arr2[i][j])
{
seed++;
}
}
}
int total=m*n;//总像素数
double similiar=0.0;
similiar=seed*1.0/total*100;//栽在小数除法,最后乘以的是百分比
printf("%.2f",similiar);
return 0;
} #include<stdio.h>
void My_scanf(int arr[100][100],int m,int n)
{
int i = 0;
int j = 0;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%d ",&arr[i][j]);
}
}
}
float Compare(int arr1[100][100],int arr2[100][100],int m,int n)
{
int i =0;
int j = 0;
float sum = n*m;
float count = 0.00f;
float ret = 0.00f;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(arr1[i][j]==arr2[i][j])
{
count++;
}
}
}
ret = 100.0*(count / sum);
return ret;
}
int main()
{
int n = 0;
int m = 0;
scanf("%d %d",&m,&n);
int arr1[100][100]={0};
int arr2[100][100]={0};
My_scanf(arr1,m,n);
My_scanf(arr2,m,n);
float ret = Compare(arr1,arr2,m,n);
printf("%.2f",ret);
return 0;
} #define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <malloc.h>
int main()
{
int row = 0;
int col = 0;
int* one = NULL;
int* two = NULL;
int i = 0;
int j = 0;
float same = 0.0f;
scanf("%d%d", &row, &col);
//开辟空间,存放2和图像
one = (int*)malloc(sizeof(int) * row * col);
if (!one)
{
perror("malloc:one");
return 1;
}
two = (int*)malloc(sizeof(int) * row * col);
if (!two)
{
perror("malloc:two");
return 1;
}
//录入图像1
for (i = 0; i < row; i++)
{
for (j = 0; j < col; j++)
{
scanf("%d", one + (i * col) + j);
}
}
//录入图像2
for (i = 0; i < row; i++)
{
for (j = 0; j < col; j++)
{
scanf("%d", two + (i * col) + j);
}
}
//比对2个图像差异
for (i = 0; i < row; i++)
{
for (j = 0; j < col; j++)
{
if (*(one + (i * col) + j) == *(two + (i * col) + j))
{
same++;
}
}
}
same = same / (row * col) * 100;//输出的是百分之,故*100
printf("%.2f\n", same);
//释放内存
free(one);
free(two);
one = NULL;
two = NULL;
return 0;
} #include<stdio.h>
int main()
{
int n, m;
scanf("%d %d",&n,&m);
int hs[1000][1000];
int ls[1000][1000];
int p = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
scanf("%d", &hs[i][j]);
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
scanf("%d", &ls[i][j]);
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if (hs[i][j] != ls[i][j])
{
p++;
}
}
}
float s = (1 - (float)p / (n * m)) * 100;
printf("%.2f", s);
return 0;
} #include <stdio.h>
int main() {
int m, n;
scanf("%d %d", &m, &n);
int arr_1[m][n], arr_2[m][n];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &arr_1[i][j]);
}
}
int tag = 0;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &arr_2[i][j]);
if(arr_1[i][j] == arr_2[i][j]){
tag++;
}
}
}
printf("%.2f", (float)tag*100/(m*n));
return 0;
} #include <stdio.h>
int main() {
int m,n=0;
scanf("%d %d",&m,&n);
int arr1[100][100]={0};
int arr2[100][100]={0};
int i,j,count=0;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&arr1[i][j]);
}
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&arr2[i][j]);
}
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(arr1[i][j]==arr2[i][j])
{
count++;
}
}
}
printf("%.2f\n",100.0*count/(m*n));
return 0;
} #include <stdio.h>
int main()
{
int n,m;
scanf("%d %d",&n,&m);
int arr[100][100];
int arr1[100][100];
double sum = 0;
for(int i = 0;i<n;i++)
{
for(int j = 0;j<m;j++)
{
scanf("%d",&arr[i][j]);
}
}
for(int i = 0;i<n;i++)
{
for(int j = 0;j<m;j++)
{
scanf("%d",&arr1[i][j]);
if(arr1[i][j]==arr[i][j])
sum++;
}
}
printf("%.2lf",sum/(n*m)*100);
return 0;
} #include <stdio.h>
int main()
{
int m,n;
scanf("%d %d",&m,&n);
int i,count = 0;
int arr[m][n],aee[m][n];
for(i=0;i<m;i++)
{
int j;
for(j=0;j<n;j++)
{
scanf("%d ",arr[i]+j);
}
}
for(i=0;i<m;i++)
{
int j;
for(j=0;j<n;j++)
{
scanf("%d ",aee[i]+j);
if(arr[i][j] == aee[i][j])
{
count++;
}
}
}
float ext = 0.0;
ext = 100.0*count/(n*m);//百分比,别忘了,乘以100.0
printf("%.2f",ext);
return 0;
} #include <stdio.h>
int main()
{
int n = 0,m = 0,count = 0;
double percent = 0.;
int arr[106][106] = {0};
int arr2[106][106] = {0};
scanf("%d%d",&n,&m);
for(int i = 0;i<n;i++)
{
for(int j = 0;j<m;j++)
{
scanf("%d",&arr[i][j]);//输入
}
}
for(int i = 0;i<n;i++)
{
for(int j = 0;j<m;j++)
{
scanf("%d",&arr2[i][j]);//输入
}
}
for(int i = 0;i<n;i++)
{
for(int j = 0;j<m;j++)
{
if(arr[i][j]==arr2[i][j])//记录相同
count++;
}
}
percent = (double)count/(n*m)*100;//计算百分比
printf("%.2lf",percent);
return 0;
} #include <stdio.h>
#include <stdlib.h>
int main() {
int m, n;
int sum = 0;
int count = 0;
scanf("%d %d", &n, &m);
sum = n * m;
int* a1 = (int*)malloc(sizeof(int) * sum);
int* a2 = (int*)malloc(sizeof(int) * sum);
int i = 0;
for (i = 0; i < sum; i++) {
scanf("%d", &a1[i]);
}
for (i = 0; i < sum; i++) {
scanf("%d", &a2[i]);
if (a1[i] == a2[i]) {
count++;
}
}
printf("%.2f", (count / (float)sum)*100);
return 0;
} #include<stdio.h>
int main() {
int arr[100][100] = {0};
int input = 0, n, m, count = 0;
scanf("%d %d", &n, &m);
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++)
scanf("%d", &arr[i][j]);
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
scanf("%d", &input);
if (input == arr[i][j])
count++;
}
}
float ret = (1.0 * count / (n * m) * 1.0) * 100;
printf("%.2f\n", ret);
return 0;
} #include <stdio.h>
int main(){
int n, m;
scanf("%d %d", &n, &m);
float c = 0, s = n*m;
int a1[n][m], a2[n][m];
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++)
scanf("%d", &a1[i][j]);
}
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++)
scanf("%d", &a2[i][j]);
}
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
if(a1[i][j] == a2[i][j])
c++;
}
}
printf("%.2f", c/s*100);
return 0;
}