首页 > 解决方案 > 插入数字后 C++ 崩溃

问题描述

使用个人库在 C++ 中实现一个应用程序,该应用程序根据用户做出的选择来确定一个数字是正数还是负数,或者一个数是否是素数。

因此,我创建了应用程序并且它可以工作,但是每次我插入数字以查看该数字是否为素数时,它都会崩溃。你能帮助我吗?没有任何错误。应用程序:

#include <iostream>
#include "libreria.cpp"

using namespace std;

int s,num, cont=0, resto, k;;
void copyright();
int main()
{
    copyright();
    cout<<"\n 1) Positive ";
    cout<<"\n 2) Prime ";
    cout<<"\n 3) Exit ";
    cout<<"\n Choose: ";

    do
    {
        cin>>s;
        switch (s)
        {
        case 1:
            cout<<"\nInsert the number: ";
            cin>>num;
            if (sepos(num) == 1)
            {
                cout<<"\nIl numero "<<num<<" is positive";
            }
            else 
            {
                cout<<"\nIl numero "<<num<<" is negative";
            }
        break;
        case 2:
            cout<<"\nInserisci il numero: ";
            cin>>num;
            seprimo(num, resto, cont, k);
            if (cont == 2)
            {
                cout<<"\nIl numero "<<num<<" is prime";
            }
            else
            {
                cout<<"\nIl numero "<<num<<" isn't prime";
            }
        break;
        }
    } while (s!=3);
    return 0;   
}

这是图书馆:

bool sepos(int numb)
{
    if(numb >= 0)
    {
        return true;
    }
    else
    {
        return false;
    }
}
int seprimo(int numb, int resto, int cont=0, int k=1)
{
    while (k <= numb)
    {
        resto=numb%k;
        if( resto == 0)
        {
            cont = cont + 1;
        }
        k = k + 1;
    }
    return cont;
}

标签: c++

解决方案


在行

resto = numb % k;

k它将0导致浮点异常,女巫未处理,因此崩溃。

尝试运行这个:

cout << 5 % 0;

推荐阅读