Use of atoi C++
Use of atoi C++
我在c++中得到了以下函数:
#include <iostream>
#include <cmath>
#include <stdlib.h>
bool isPrime(char myArr[])
{
int myInt=atoi(myArr);
int maxX=sqrt(myInt)+1;
for(int x=0; x<maxX; x++)
{
if(!myInt%x)
return false;
}
return true;
}
但是当我运行它时,Windows返回一个消息框,说"Prime.c已经停止工作"。我有一种感觉,它与使用atoi
有关,虽然我不确定。应该使用atoi
吗?我用错了吗?或者这是一个完全不同的问题?
谢谢
你没有atoi
的问题,虽然你没有检查,看看它是否正常工作。
真正的问题是程序在循环的第一次迭代时除以0。在2
:
x
for (int x = 2; x < maxX; x++)
你也必须从2
开始。从1
开始会告诉你所有的数字都是质数,这不是真的,也可能不是你想要的。你可能需要一个特殊的情况来处理0
和1
的输入——它们不是素数,但会从你当前的算法中掉出来。
编者按:如果对你有用的话,有很多更快的方法来检查一个数字是否是素数。
你不想除以0,从2开始:
for (int x = 2; x < maxX; x++)
相关文章:
- 将字符串转换为浮点数或整数,而无需使用内置函数(如 atoi 或 atof)
- atoi() 在应用于大型命令行参数时会产生不正确的值
- 编译时间文本到数字转换 (atoi)
- atoi() 表示int128_t类型
- 使用 atoi 将字符数组转换为 int 会给出不同的值
- 为什么 stoi/atoi 为我提供编译器错误
- C 字符串和 atoi 函数的问题
- 我正在使用 Atoi 的 If 语句苦苦挣扎
- Atoi() 未按预期工作
- 来自ATOI的总和输出
- Win32 Atoi 问题无法将参数 1 从 'wchar_t [5]' 转换为常量字符 *
- 如何修复调用"Atoi"没有匹配功能的问题?
- 从"char"到"const char*"的转换无效 [-fpermissive] str::atoi (字符串到整数)
- 想要在读取文件时在类型的char上使用atoi()
- argc atoi argv, Opencv, C++
- C++ - 使用 Atoi 时出错
- C:atoi()对未符号字符的输出输出
- atoi() - from char to int
- 更新了atoi(string.c_str())的偶尔未处理的异常
- C++的 atoi() 如何保证如果它允许未定义的行为不会引发异常?