第一次写博客,闲话不说,直接上题。
牛客网在线编程题目BC79(双击)
在此题之前,我一直认为变长数组可以有如下操作:
int m,n,a[m][n];
直到今天刷到此题,才知道原来必须得等m,n的值明确是,该变长数组才有意义;如下,
变长数组才算真正完成了定义。

int m,n;
scanf("%d %d",&m,&n);
int a[m][n];

在此之前,我的代码是:

#include<stdio.h>
int main(){
    int m,n,a[m*2+1][n+1],x=0;
    scanf("%d %d",&m,&n);
    for(int i=1;i<m*2+1;i++){
        for(int j=1;j<n+1;j++)
            scanf("%d",&a[i][j]);
    }
    for(int i=1;i<m+1;i++){
        for(int j=1;j<n+1;j++)
            if(a[i][j]==a[i+m][j])
                ++x;
        }
    printf("%.2f",float(x)/(m*n)*100);
    return 0;

结果运行答案始终为:100.00
在改为以下代码时,终于通过了题目(T_T)~

#include<stdio.h>
int main(){
    int m,n,a[100][100],x=0;
    scanf("%d %d",&m,&n);
    for(int i=1;i<m*2+1;i++){
        for(int j=1;j<n+1;j++)
            scanf("%d",&a[i][j]);
    }
    for(int i=1;i<m+1;i++){
        for(int j=1;j<n+1;j++)
            if(a[i][j]==a[i+m][j])
                ++x;
        }
    printf("%.2f",float(x)/(m*n)*100);
    return 0;
}

仅仅因为初始化数组的问题,在这题上硬生生耗费了一个多小时,希望能对和我一样的小白有所启发。
最后,感谢阅读,谢谢!
(Ps:跪求大佬加好友指点迷津,一个人的旅途太过艰难,(T_T)帮帮孩子吧。。。。)