一个整数不等于另一个整数? #包括“stdafx.h” int _tmain(int argc,_TCHAR*argv[] { 最小整数、最大整数、平方和; sumOfSquares=0; //扫描频率(“%d%d”、“最小值”、“最大值”); while((scanf_s(“%d”、&min))!=(scanf_s(“%d”、&max))) { for(int i=min;i

一个整数不等于另一个整数? #包括“stdafx.h” int _tmain(int argc,_TCHAR*argv[] { 最小整数、最大整数、平方和; sumOfSquares=0; //扫描频率(“%d%d”、“最小值”、“最大值”); while((scanf_s(“%d”、&min))!=(scanf_s(“%d”、&max))) { for(int i=min;i,c,while-loop,C,While Loop,scanf\u s,与scanf类似,返回成功解析的值数。scanf\u s(“%d”,&min)将返回0、1或EOF(用于错误和文件结尾)。因此,比较 #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", &

scanf\u s
,与
scanf
类似,返回成功解析的值数。
scanf\u s(“%d”,&min)
将返回0、1或
EOF
(用于错误和文件结尾)。因此,比较

#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;
}
只有当只能读取
min
max
中的一个,并且它们所取的值不计入结果时,才会为真。此外,由于计算
!=
的操作数的顺序未指定,因此读取值的顺序未定义

你可能想用像这样的东西

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

如果
scanf\u s
报告它能够解析两个值,则这里的
scanf\u s(“%d%d”、&min和&max)==2将为真(您可以通过两次调用
scanf\u s
来完成此操作,但我认为没有理由这样做),并且
min!=max
我相信是不言自明的。

scanf\u s
scanf
一样,返回成功解析的值的数量。
scanf\u s(“%d”,&min)
将返回0、1或
EOF
(对于错误和文件结尾)。因此,比较

#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;
}
只有当只能读取
min
max
中的一个,并且它们所取的值不计入结果时,才会为真。此外,由于计算
!=
的操作数的顺序未指定,因此读取值的顺序未定义

你可能想用像这样的东西

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

如果
scanf\u s
报告它能够解析两个值,则这里的
scanf\u s(“%d%d”、&min和&max)==2将为真(您可以通过两次调用
scanf\u s
来完成此操作,但我认为没有理由这样做),而
min!=max
我相信是不言自明的。

问题是,C没有指定执行顺序,因此
scanfu s(“%d”,&min)
可能不会在
scanfu s(“%d”,&max)之前执行和max将在min in c和C++之前被读取,所以如果需要保护该命令,必须在2个函数调用之间插入一个序列点,C是不指定执行顺序的,所以<代码> Scffys(“%d”,min) >在<代码> Snffss(“%d”,max)之前不执行。和max将在min in c和C++之前被读取,所以如果你需要保护这个命令,你必须在2个函数调用之间插入一个序列点,谢谢!!我会在五分钟内选择你的答案,因为它现在不允许我。我不知道,尽管Snffs确实得到了这个值,但是它只使用0个1,基于它是否得到了。有没有。有意思。今天学到了一些新东西:)谢谢!!我将在五分钟后选择你的答案,因为它现在不允许我选择。我不知道,虽然scanf_s确实得到了值,但它只根据是否得到它而使用0 1。有意思。今天学到了一些新东西:)