#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
int min, max, sumOfSquares;
sumOfSquares = 0;
//scanf_s("%d %d", &min, &max);
while((scanf_s("%d", &min)) != (scanf_s("%d", &max)))
{
for (int i = min; i <= max; i++)
{
sumOfSquares += (i*i);
}
printf("%d", sumOfSquares);
printf("%d %d", min, max);
}
return 0;
}
因此,基本上,我输入了两个整数。一个是最小值,下一个是最大值。我得到最小和最大的平方和之间的每个数字的和。我不太确定哪里出了问题。当我输入两个数字时,什么都没打印出来,所以我猜while语句有问题吗?
那不是可接受的格式吗?有人可以告诉我什么地方出了问题,如果可以的话,请向我指出正确的方向。
另外,我使用了那样的while循环,因为它应该一直问我一个输入并打印出sumOfSquares,直到我输入一个彼此相等的输入,例如5 5。
scanf_s
与一样scanf
,返回已成功解析的值的数量。scanf_s("%d", &min)
将返回0、1或EOF
(表示错误和文件结尾)。这样,比较
(scanf_s("%d", &min)) != (scanf_s("%d", &max))
仅当min
和之一max
可以读取并且它们采用的值不计入结果时,才会为true 。此外,由于!=
未指定计算操作数的顺序,因此未定义按什么顺序读取值。
您可能打算使用类似
while(scanf_s(" %d %d", &min, &max) == 2 && min != max)
scanf_s(" %d %d", &min, &max) == 2
如果scanf_s
报告能够解析两个值(您可以通过两次调用来做到这一点scanf_s
,但我认为没有理由这样做),并且min != max
我认为这是不言自明的,那么这将是正确的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句