我有这个循环
while (p < numSchemes){
totalg = 0;
while (s < numComponents){
totalg = totalg + (grades[s] * (weight[p][s] * .01) );
s++;
}
printf("Grade using marking scheme #%d: %.02f\n", p, totalg);
p++;
}
在第一个循环中,它成功总结了总数并将其放入totalg
但是在第二次迭代之后,totalg
它只打印出我从第一次迭代得到的结果。
有人能指出我在这里做错了什么吗?提前谢谢。
答案 0 :(得分:2)
您没有重置s
。当第二次迭代开始时,s == numComponents
(因为前一次迭代一直在增加它),所以第二个while
循环永远不会运行,totalg
永远不会改变。
你应该:
s
(甚至更好,像@JonathanLeffler建议并使用for
循环一样)totalg
(取决于你想要的东西;如果没有更多背景,我就无法告诉你)