C++ 为什么会崩溃?
小Z先生正在看一张纸,试图找出写在纸上的数字的平方根,但没有成功 帮助小Z先生找到数字B,它是大数字A的平方根。数字A最多有1000位,A的平方根永远是整数 输入: 标准输入的第一行包含数字0 输出: 向标准输出写入数字M,其中M表示数字B的长度(其中B是数字A的平方根),在接下来的M行中写入数字B的数字(从最高有效位到最低有效位) 输入: 3. 6. 2. 五, 输出: 2. 2. 五, 说明: 写在纸上的数字是625,它的平方根是25 我的代码:C++ 为什么会崩溃?,c++,windows,codeblocks,C++,Windows,Codeblocks,小Z先生正在看一张纸,试图找出写在纸上的数字的平方根,但没有成功 帮助小Z先生找到数字B,它是大数字A的平方根。数字A最多有1000位,A的平方根永远是整数 输入: 标准输入的第一行包含数字0 输出: 向标准输出写入数字M,其中M表示数字B的长度(其中B是数字A的平方根),在接下来的M行中写入数字B的数字(从最高有效位到最低有效位) 输入: 3. 6. 2. 五, 输出: 2. 2. 五, 说明: 写在纸上的数字是625,它的平方根是25 我的代码: #include <iostream&
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n,m,k,i;
int niza[1001];
cin>>m;
for(int i=0;i<m;i++)
cin>>niza[i];
niza[i]=k;
cout<<sqrt(k);
return 0;
}
#包括
#包括
使用名称空间std;
int main()
{
int n,m,k,i;
国际尼扎[1001];
cin>>m;
对于(int i=0;i>niza[i];
niza[i]=k;
cout这很可能是因为您从未设置k
,并且它在程序开始时包含的随机值为负值,因此sqrt(k)
崩溃。此外,如果输入的m
大于1000
,您将超出数组边界。这很可能是因为您从未设置k
,并且它在程序开始时包含的随机值为负值,因此sqrt(k)
崩溃。此外,如果输入的m
大于1000
,您将超出数组边界。您的程序将在以下位置崩溃:niza[i]=k
,因为i
超过了数组的末尾
k
未初始化。您正在输出未初始化变量的平方根
就像@Vilx-said一样,您必须在循环之前检查m
的值
此外,sqrt
函数对数字数组不起作用,因此您必须提出一种不同的方法来基于数字计算平方根
在cin>>m
和cin>>niza[i]
之后,您需要检查cin
的状态。用户可以并且将输入任何内容,例如字母,当需要数字时,这些内容会导致失败
此外,请尝试在运算符和函数名之间添加空格。它们不会增加可执行文件的大小或速度,但会使读取和维护更容易。您的程序将在以下位置崩溃:niza[i]=k
,因为i
已超过数组的末尾
k
未初始化。您正在输出未初始化变量的平方根
就像@Vilx-said一样,您必须在循环之前检查m
的值
此外,sqrt
函数对数字数组不起作用,因此您必须提出一种不同的方法来基于数字计算平方根
在cin>>m
和cin>>niza[i]
之后,您需要检查cin
的状态。用户可以并且将输入任何内容,例如字母,当需要数字时,这些内容会导致失败
此外,尝试在操作符和函数名之间加空格。它们不会增加可执行文件的大小或速度,但会使阅读和维护更容易。运行程序时输入的值是多少?模糊的标题不太可能帮助网站的未来访问者。太本地化了。运行程序时输入的值是多少e程序?模糊的标题不太可能帮助网站的未来访问者。太本地化了。