gpt4 book ai didi

c++ - 使用 vector 查找平衡指数的程序失败

转载 作者:太空宇宙 更新时间:2023-11-04 15:09:23 24 4
gpt4 key购买 nike

我正在尝试编写一个程序来查找并打印出序列的平衡索引(该索引使得较低索引处的元素总和等于较高索引处元素的总和)。但是我收到以下错误消息:

Run-Time Check Failure #3 - The variable 'e' is being used without being initialized.

这是我的代码:

#include <iostream>
#include <string>
#include <vector>
#include <cmath>
#include <fstream>
#include <sstream>
using namespace std;

int equi( vector<int> Vec , int index );

int main( int argc, char** argv )
{

vector<int> A( 5 );

A[ 0 ] = 7;
A[ 1 ] = 2;
A[ 2 ] = -4;
A[ 3 ] = 6;
A[ 4 ] = 3;

int e;

equi( A, e );

system( "PAUSE" );
}


int equi( vector<int> Vec , int index )
{
index = 0;
int leftSum = 0;
int rightSum = 0;

for ( int j = 0 ; j < Vec.size() ; j++ )
{

for ( int i = index + 1 ; i < Vec.size() ; i++ )
{
rightSum = rightSum + Vec[ i ];
};

if ( leftSum == rightSum ) return index;
else
{
leftSum = leftSum + Vec[ index ];
index++;
};

}

return -1;
}

有人可以帮我找出我做错了什么吗?当 main 和函数声明和定义中都声明了整数时,为什么我需要初始化 e???

谢谢,

最佳答案

int e = 0;
equi( A, e );

e 应该被初始化为一个值,否则它会(按值)传递给函数 equi。这意味着函数 equi 获取值的拷贝(例如,在 equi 内部对 e 的任何更改在外部都不会可见)。

关于c++ - 使用 vector 查找平衡指数的程序失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5541012/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com