图像相似度的问题 c语言基础多维数组

img


代码没有问题 但是得不到相应的结果。写了两个循环去编译两个矩阵



#include<stdio.h>
int main()
{
    int n, m, i, j, sum = 0;
    scanf("%d %d", &n, &m);
    int a[100][100], b[100][100];
    for (i = 0; i < n; i++)
        for (j = 0; j < m; j++)
            scanf("%d", &a[i][j]); 

    for (i = 0; i < n; i++)
        for (j = 0; j < m; j++)
            scanf("%d", &b[i][j]);    
    if (a[i][j] == b[i][j])   
        sum = sum + 1;
    printf("%.2f", 100 * (double)sum / (n * n));  
    return 0;
}

我现在使用的编译器不支持数组定义时里面是未知数,即便在上面scanf了,所以还是建议写成我这样

把 "%d%d" 改成 "%d"

img

代码修改如下,修改的地方在注释里


#include<stdio.h>
int main()
{
    int n, m, i, j, sum =0;
    scanf("%d %d", &n, &m); 
    int a[n][m], b[n][m]; 
    for (i = 0; i < n; i++) 
        for (j = 0; j < m; j++)
            scanf("%d", &a[i][j]);  //只输入一个值,就写一个%d
            
    for (i = 0; i < n; i++) 
        for (j = 0; j < m; j++) 
            scanf("%d", &b[i][j]);    //只输入一个值,就写一个%d
            if (a[i][j] == b[i][j])   // 用==判断是否相等
                sum = sum + 1;
    printf("%.2f", 108 * (double)sum / (n * n));   //想要以浮点数输出,需将数据类型转换
    return 0;
}