簡體   English   中英

一個整數不等於另一個整數嗎?

[英]One integer not equal to another integer?

#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一樣, scanf_s返回已成功解析的值的數量。 scanf_s("%d", &min)將返回0、1或EOF (用於錯誤和文件結尾)。 這樣,比較

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

僅當只能讀取minmax之一並且它們所取的值不計入結果時,才會為true。 此外,由於未指定計算!=操作數的順序,因此未按什么順序讀取值。

您可能打算使用類似

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

如果scanf_s報告它能夠解析兩個值,則scanf_s(" %d %d", &min, &max) == 2將成立(您可以通過對scanf_s兩次調用來做到這scanf_s ,但我認為沒有理由這樣做) ),並且我相信min != max是不言自明的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM