我做错了什么? (C++数组)
所以,我正在做在线挑战,这是我必须做的: 我必须输出数字“N”的魔术。之后,你输入“N”个法术来形成魔法。我做错了什么? (C++数组)
因此,基本上,一个示例是输入:
5
3
2
1
1
0
的这个输出应为2,因为3 + 2 = 5的魔法。然而,重要的注意事项(其我有问题的是,每个咒语1到的值)
实施例:
12
5
5
4
4
4
3
3
3
2
2
2
1
所以,5 + 5 = 10,但由于每个咒语+ 1值,6 + 6 = 12。所以输出应该是2
这里是我的代码,但由于某些原因,它输出3.
#include <iostream>
using namespace std;
int main()
{
int n,c=0,br=0;
cin>>n;
int a[150];
for(int i=0;i<n;i++)
{
cin >> a[i];
a[i]+=1;
while(c<=n)
{
c+=a[i];
br++;
}
}
if(a[0]==n-1)
br--;
cout << br << endl;
return 0;
}
使用心理调试技能:
while(c<=n)
手段,而总的法术是少于或等于法术数量。
这意味着它使用前5个法术(总数是6),然后是第二个5法术(总数是12),然后由于它仍然少于或等于法术数量(12),它使用前四个法术(总数现在是16)。我想你想要c<n
而不是c<=n
。
无关:你的问题措辞十分措辞,几乎没有意义。
该死的,我不知道我是如何错过的...感谢您的帮助。对于措辞错误的文字,我感到很抱歉,我只是因为我一直在尝试做这件事而感到愤怒......再次感谢! – 2013-02-25 20:56:30
你错过了,因为你没有使用调试器,也没有使用最原始的或基本的调试方法。使用'cout'或'printf',并用调试器进入代码。 – 2013-02-25 21:05:52
标题说“C数组”,但你使用C++?不知道你的'拼写价值'是什么意思。 – 2013-02-25 20:37:42
请用更抽象的方式描述所需的输出。 – Oswald 2013-02-25 20:40:30
它是C++,我不知道它为什么说C ..输出是你需要多少法术来形成主魔法。例如,如果N = 24,则需要24个法术才能形成该魔法。我们输入N(魔法的力量),然后我们输入N个按照最高到最低功率排序的法术。之后,我们输出我们需要制造魔法的法术。但是,请记住,每个SPELL对它有+1值,如果该咒语是11,我们会认为它为12. – 2013-02-25 20:43:15