这个程序在一个所有元素都是非零且唯一的数组中查找主元元素。如果数组中的一个元素左侧列表中所有元素的总和等于其右侧列表中所有元素的总和,则该元素是主元元素。例如:{1,2,3,7,6}这里7是主元1 + 2 + 3 = 6**回到问题上来,我将分享我的代码为这个问题。问题是它不工作。我咨询了一些资源,但都提到它是低效的。有人能请检查我的代码,并告诉我哪里出错了。我想开发此代码,并要求所有找到此代码中的错误,而不是建议一个新的代码。PS:我的第一个问题,所以如果你不满意我的方法张贴一个问题,请原谅。最后的问题似乎是与我的枢纽功能。请求Maven跳过其他行的代码和验证枢纽功能。
我的代码:
#include<iostream>
using namespace std;
void initarray(int a[],int n)
{
for(int i =0;i<n;i++)
{
a[i]=0;
}
}
void acceptarray(int a[],int n)
{
for(int i =0;i<n;i++)
{
cout<<"Enter element"<<i+1;cin>>a[i];
}
}
int pivotelement(int a[],int n)
{
int s1 =0; int s2=0;
for(int i =0;i<n-1;i++)
{
for(int k =0;k<=i;k++)
{
s1 +=a[k];
}
for(int j = i+2;j<n;j++)
{
s2 +=a[j];
}
if(s1 == s2)
{
cout<<"Pivot element is"<<" "<<a[i+1];break;
}
else if(s1 != s2)
{
continue;
}
else if(i == n-2)
{
cout<<"0(no pivot element)";break;
}
}
}
int main(void)
{
int a[100];
int n =0;
cout<<"Enter the number of elements in the array";cin>>n;
initarray(a,n);
acceptarray(a,n);
pivotelement(a,n);
return 0;
}
2条答案
按热度按时间x0fgdtte1#
我已经在注解中指出了你的错误。这段代码工作得很好。
rhfm7lfc2#