gpt4 book ai didi

c - 一个整数不等于另一个整数?

转载 作者:太空宇宙 更新时间:2023-11-04 06:25:03 24 4
gpt4 key购买 nike

#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_sscanf 一样,返回被成功解析的值的数量。 scanf_s("%d", &min) 将返回 0、1 或 EOF(用于错误和文件结尾)。因此,比较

(scanf_s("%d", &min)) != (scanf_s("%d", &max))

仅当只能读取 minmax 之一时才为真,并且它们所取的值不会影响结果。此外,未定义读取值的顺序,因为未指定 != 的操作数的计算顺序。

你可能打算使用类似的东西

while(scanf_s(" %d %d", &min, &max) == 2 && min != max)

如果 scanf_s 报告它能够解析两个值(您可以通过两次调用 scanf_s 来做到这一点,但我认为没有理由这样做),而且 min != max 是,我相信,不言自明。

关于c - 一个整数不等于另一个整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28254120/

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