C++ 程序调试

C++ 程序调试,c++,debugging,C++,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/(输入偶数))的循环

程序输出应如下所示:

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;

}
#包括
int main(int argc,char*argv[])
{
浮动值、总和、增量;
int-num;
cout>num;
如果(数量%2!=0)

cout如果你将一个整数
1
除以另一个
num
,结果是一个整数,正如chris所说的是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;
}
#包括
int main(){
浮动值、总和、增量;
int-num;
cout>num;
如果(num<0 | | num%2!=0){

cout
1/num
为0,除非
num
为0,-1或1.1.0/num………..
如果(num%2!=0)
不正确。如果(num<0 | | num%2!=0),则应为
。例如,您的版本不支持-6。当输入奇数时,它仍会运行循环。如果没有人注意到,无论输入什么,它仍会运行循环。