簡體   English   中英

程序調試

[英]Program debugging

程序輸出應如下所示:

Enter an even number: 23
The number is not a positive even number.
Enter an even number: -6
The number is not a positive even number.
Enter an even number: 4

20 20.25 20.50 20.75 21
The sum is 102.5

程序無法正常運行。 識別出奇/偶數,但是遞增變量(20 + 1 /(輸入的偶數))的循環無法正常進行。

#include <iostream>

int main(int argc, char *argv[])
{

    float val, sum, incr;
    int num;

    cout << "Enter an even number: ";
    cin >> num;

    if (num % 2 != 0)
        cout << "The number " << num << " is not a positive even number." << endl;
    else
        cout << num << " is even!" << endl << endl;


    incr = 1 / num;

    for (val = 20.0F; val <= 21.0; val += incr)
    {
        cout << val;
        sum += val;
    }

    cout << "The sum is " << sum << endl;

    return 0;

}

如果分割一個整數1彼此之間num的結果是一個整數,如克里斯說是0。

你應該做:

incr = 1.0F / (float)num;

對於錯誤的引入值退出,您應該從main返回

#include <iostream>

int main() {
    float val, sum, incr;
    int num; 

    cout << "Enter an even number: ";
    cin >> num;
    if (num < 0 || num % 2 != 0){
        cout << "The number " << num << " is not a positive even number." << endl;
        return -1;
    }
    else {
        cout << num << " is even!" << endl << endl;
    }

    incr = 1.0 / num;
    for (val = 20.0F; val <= 21.0; val += incr) {
        cout << val << " ";
        sum += val;
    }
    cout << "The sum is " << sum << endl;
    return 0;
}

暫無
暫無

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

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