为什么这个变量的定义放在主函数外面就编译失败?

学术版

水星湖 @ 2023-08-29 11:08:17

#include<bits/stdc++.h>
using namespace std;
int n,m,x1,len1,x2,y2,len2;
int y1;
int v[805][805];
bool f[805][805];//是否算过
int main()
{

    cin>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            cin>>v[i][j];
    int q;
    cin>>q;
    while(q--)
    {
        cin>>x1>>y1>>len1>>x2>>y2>>len2;
        memset(f,0,sizeof(f));
        long long sum=0;
        for(int i=x1;i<=x1+len1-1;i++)
            for(int j=y1;j<=y1+len1-1;j++)
            {
                f[i][j]++;
                sum += v[i][j];
                // cout<<sum<<endl;
            }
        for(int i=x2;i<=x2+len2-1;i++)
            for(int j=y2;j<=y2+len2-1;j++)
            {
                if(!f[i][j])
                    sum += v[i][j];
            }
        cout<<sum<<endl;
    }
    return 0;
}

上面是编译过不了的代码

#include<bits/stdc++.h>
using namespace std;
int n,m,x1,len1,x2,y2,len2;
// int y1;
int v[805][805];
bool f[805][805];//是否算过
int main()
{
    int y1;
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            cin>>v[i][j];
    int q;
    cin>>q;
    while(q--)
    {
        cin>>x1>>y1>>len1>>x2>>y2>>len2;
        memset(f,0,sizeof(f));
        long long sum=0;
        for(int i=x1;i<=x1+len1-1;i++)
            for(int j=y1;j<=y1+len1-1;j++)
            {
                f[i][j]++;
                sum += v[i][j];
                // cout<<sum<<endl;
            }
        for(int i=x2;i<=x2+len2-1;i++)
            for(int j=y2;j<=y2+len2-1;j++)
            {
                if(!f[i][j])
                    sum += v[i][j];
            }
        cout<<sum<<endl;
    }
    return 0;
}

把y1放到主函数里就能编译过了


by Disinfect @ 2023-08-29 11:12:34

@zrczrczrczrc y1是一个系统的变量


by int_4096 @ 2023-08-29 11:12:39

@zrczrczrczrc y1是一个在cmath库的函数, 所以要么不打万能头,要么就别用y1当变量名。


by TryHardToBeAlive @ 2023-08-29 11:14:26

@zrczrczrczrc y1之类的在cmath里面有定义

参考


by 水星湖 @ 2023-08-29 11:18:15

@youzhanyue @int_4096 谢谢


by kk1501201 @ 2023-08-29 11:18:54

万能头不能用y1,望周知(


|