C++ C++;:编写一个程序,当-6.5“;输入

C++ C++;:编写一个程序,当-6.5“;输入,c++,C++,任务是编写一个简单的程序,如果输入偶数,它将接受一个整数并计算其阶乘;如果输入奇数,它将检查该数是否为素数。程序重复,直到输入值“-6.5”。我添加了一个条件,使循环在输入该值时停止,但当输入该值(或任何其他十进制数)时,我会得到一个无限重复的输入提示循环。为什么会这样 #include <iostream> using namespace std; int main () { int num; do { int choice; int fac

任务是编写一个简单的程序,如果输入偶数,它将接受一个整数并计算其阶乘;如果输入奇数,它将检查该数是否为素数。程序重复,直到输入值“-6.5”。我添加了一个条件,使循环在输入该值时停止,但当输入该值(或任何其他十进制数)时,我会得到一个无限重复的输入提示循环。为什么会这样

#include <iostream>
using namespace std;
int main ()
{
    int num;
    do
    {
    int choice;
    int factorial=1;
    int count=0;
    cout<<"Enter a number: \n";
    cin>>num;
    if (num>1)
    {
    cout<<"To calculate factorial, enter an even number\n";
    cout<<"\nTo check if a number is Prime or not, enter an odd number\n";
    cin>>choice;

    {
        if (choice%2==0)
    {
        for (int i=num; i>=1; i--)
    {
        factorial=factorial*i;
    }
        cout<<endl;
        cout<<"The factorial of "<<num <<" equals " <<factorial;
        cout<<endl;

    }
    if (choice%2==1)

    {
    for (int i=2;i<num;i++)
        {
           if (num%i==0)
           {
            ++count;
           }

        }
    if (count==0)
    {
        cout<<endl;
        cout<<num <<" is prime.\n ";
    }
    else if (!(count==0))
    {
        cout<<endl;
        cout<<num <<" is not prime.\n";
    }

    }  
    }   
    }

    }
    while (!(num==-6.5));

} 
#包括
使用名称空间std;
int main()
{
int-num;
做
{
智力选择;
整数阶乘=1;
整数计数=0;
库特南;
如果(num>1)
{

快速浏览一下,所有的数字都是整数,只包含整数,不包含小数

首先,用双精度或浮点值更改小数点所需的任何数字(选择最适合您的应用程序的数字)


查看更改数字后会发生什么。

仅供参考,
num
是代码中的
int
num
int
,因此即使输入6.5,它也将转换为6,控件
num==6.5
将始终返回
false
。我将num更改为float,但这导致%opera出现错误tor用于计算数字是否为素数。如果输入6.5,为什么代码必须退出?必须在哪里输入6.5?