Little_White_x 2017-08-12 09:30 采纳率: 50%
浏览 5194
已采纳

vs2017编译报错,变量未初始化?

今天在写atcoder contest 080E - Young Maids时,在我的solve()函数里面总是说我的
down没有初始化,但是我明明在循环里面初始化了啊?
附上代码:

#include<iostream>
#include<vector>
#include<algorithm>

using namespace std;

vector<int> ans;
int n;
const int INF = 0x3f3f3f;

void solve(vector<int> dir,int f,int s)
{
    if (dir.empty()) return;
    int maxhead = 0, cnt = 0,down;
    for (int i = 0; i < dir.size()-1; ++i) {
        if (dir[i] != f && dir[i] != s) {
            if (dir[i + 1] != f && dir[i + 1] != s) {
                if (dir[i] > maxhead) {
                    cout << "ok" << endl;
                    cout << i << endl;
                    maxhead = dir[i];
                    down = i;
                }
            }
        }
    }
    cout << down << endl;

    ans.push_back(dir[down + 1]); ans.push_back(dir[down]);
    vector<int> nex;
    for (int i = 0; i < dir.size(); ++i) {
        if (i != down && i!=down+1) {
            nex.push_back(dir[i]);
        }
    }
    solve(nex, f, s);
}

int main()
{
    vector<int> iv; int temp,goalf=INF,goals=INF;
    cin >> n;
    for (int i = 0; i < n; ++i) {
        cin >> temp;
        iv.push_back(temp);
        if (temp < goalf && !(i%2)) {
            goalf = temp;
        }
    }
    int i;
    for (i = 0; iv[i] != goalf; ++i);
    for (int j = i + 1; j < n; ++j) {
        if (iv[j] < goals) {
            goals = iv[j];
        }
    }

    cout << goalf << " " << goals << endl;

    solve(iv,goalf,goals);
    reverse(ans.begin(), ans.end());
    for (int i = 0; i < ans.size(); ++i) {
        cout << ans[i] << " ";
    }
    cout << endl;
    system("pause");
    return 0;
}

望各位能指点一二,谢了

  • 写回答

4条回答 默认 最新

  • 弹棉花弹棉花 2017-08-12 12:22
    关注

    你看我的运行图:
    图片说明

    我初始化了0,最后有一行输出了0,说明这次没进入if里面,因为你的方法是递归的,递归到这一次出错了,前面虽然给down赋值了,不过这次递归又是新的一次。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥50 关于#html5#的问题:H5页面用户手机返回的时候跳转到指定页面例如(语言-javascript)
  • ¥15 无法使用此凭据登录,因为你的域不可用,如何解决?(标签-Windows)
  • ¥15 yolov9的训练时间
  • ¥15 二叉树遍历没有报错但无法正常运行
  • ¥15 在linux系统下vscode运行robocup3d上场球员报错
  • ¥15 Python语言实验
  • ¥15 SAP HANA SQL 增加合计行
  • ¥20 用C#语言解决一个英文打字练习器,有偿
  • ¥15 srs-sip外部服务 webrtc支持H265格式
  • ¥15 在使用abaqus软件中,继承到assembly里的surfaces怎么使用python批量调动