[英]Keep getting floating point exception in prime number c++ program
我正在嘗試創建一個程序,該程序采用用戶整數並確定該整數是否為素數。 但是,當我嘗試輸入一個數字時,出現浮點異常。 這是為什么? 我制作了一個數組,以便遍歷每個數字直到整數以檢查其可整性這里是代碼:
#include <iostream>
using namespace std;
bool isPrime(int n)
{
int arr[n];
if (n == 1 or n == 2) {
return true;
}
for (int i = 1; i < n; i++){
if (n % arr[i] == 0) {
return false;
}
else {
return true;
}
}
}
int main()
{
int user_input;
cout << "Enter an integer to test if it's prime: ";
cin >> user_input;
bool value = isPrime(user_input);
string true_false;
if (value == 1) {
true_false = "true";
}
else {
true_false = "false";
}
cout << true_false;
return 0;
}
致命異常發生在if (n % arr[i] == 0) {
。 此數組指向未初始化的內存,其中偶爾會包含 0,從而導致除以零錯誤。 感謝nm 。 指出我的錯誤。
使用 C 習語,例如int arr[n];
其中n
在編譯時不是已知常量會導致常見的 C 編程問題,就像這樣。 C++ 具有可用於避免這些問題的功能。 我建議你學習和使用現代 C++。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.