weixin_40007143
指针的值是地址
采纳率100%
2020-02-04 14:09

VS 2019 错误 C3074 无法使用带圆括号的初始值设定项初始化数组

已采纳

我遇到了这么一个问题,

错误 C3074 无法使用带圆括号的初始值设定项初始化数组。

我搜索了微软的文档,没有C3074的错误解释。
不知道这个错误怎么解.
图片说明

这道题目是要求判断一个栈的输出序列,是否符合实际。
b是栈,元素是整型。
a是栈,元素是数组,话说这样可以吗?
然后我就不知道为什么错了。

int main()
{
    stack<int>b;
    int m = 0;
    int n = 0;
    int k = 0;
    cin >> m >> n >> k;
    int c[1000] = { 0 };
    bool d[1000] = { 0 };
    queue<int [1000]>a;    //队列的元素是大小为n的数组
    if (m < 0 || m>1000) {
        return -1;
    }
    if (n < 0 || n>1000) {
        return -1;
    }
    if (k < 0 || k>1000) {
        return -1;
    }
    for (int i = 0; i < k; i++) {
        for (int j = 0; j < n; j++) {
            cin >> c[j];
        }
        a.push(c);
    }
    for (int i = 0; i < k; i++) {
        for (int i3 = 0; i3 < n; i3++) {
            c[i3] = (a.front())[i3];
        }
        //memcpy(c,a.front(),4000);
        a.pop();
        if (!b.empty()) { b.pop(); }
        d[1000] = { 0 };
        b.push(c[0]);
        d[c[0]-1] = true;
        for (int j = 1; j < n; j++) {
            if (c[j] > b.top()) {
                if (c[j] - b.size() <= m && j == 6) { cout << "YES" << endl; }
                else if (c[j] - b.size() <= m) { b.push(c[j]); d[c[j]-1] = true; }
                else { cout << "NO"<<endl; break; }
            }
            else if (c[j] < b.top()) {
                int i1 = 0;
                for (i1 = b.top() - 1; i1 >= 0; i1--) {
                    if (d[i1] == false)  break;
                }
                if (i1 > -1) {
                    if (c[j] ==i1+1 && j==6) { cout << "YES"<<endl; }
                    if (c[j] == i1 + 1) { b.push(c[j]); d[c[j]-1] = true; }
                    else { cout << "NO"<<endl; break; }
                }
            }
            else { cout << "NO" << endl; break; }
        }
    }
    return 0;
}
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

相关推荐