gpt4 book ai didi

c++ - for 循环中的迭代次数错误。还得到意外输出

转载 作者:行者123 更新时间:2023-11-28 00:36:14 25 4
gpt4 key购买 nike

Codeforces 问题 160A- http://codeforces.com/problemset/problem/160/A

我得到 1 或 2 作为所有测试用例的输出。我认为这是因为解决方案末尾的 for 循环只运行一次或两次。我无法确定为什么循环在最多 2 次迭代后结束。我的解决方案有什么问题。

我的解决方案:

#include<iostream>
using namespace std;


int total(int x,int y,int array[100]) //Function to calculate sum of xth to yth term of array.
{
int z=0;

for(int a=x;a<=y;a++)
{
z+=array[a];
}

return z;
}

int main()
{
int n,coin[],sum1,sum2,i,j,a,temp,noofcoins;

cin>>n;

for(i=0;i<n;i++)
cin>>coin[i];

for(i=0;i<n;i++) //Bubble sorting array in descending order.
{
for(j=0;j<n-i-1;j++)
{
if(coin[j]<coin[j+1])
{
temp=coin[j];
coin[j]=coin[j+1];
coin[j+1]=temp;
}
}
}

noofcoins=0;
sum1=0;
sum2=0;

for(i=0;((i<n)&&(sum1<=sum2));i++)
{
sum1+=coin[i];
sum2=total(i+1,n,coin);
++noofcoins;
}

cout<<noofcoins;
}

最佳答案

首先,避免使用全局变量。本声明属于主体

int n,coin[100],sum1,sum2,i,j,temp,noofcoins;

一旦更正它,您会注意到函数 total 中使用的变量 imain 中使用的变量相同。只需在 for 中对其进行初始化即可。

for(int i=x;i<y;i++)

那么,final for 中的条件是错误的。应该是:

for(i=0;((i<n)&&(sum1<=sum2));i++)

关于c++ - for 循环中的迭代次数错误。还得到意外输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20844119/

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