为什么它会崩溃
Why does it crash?
Mr。小Z正在看一张纸,试图找到写在纸上的数字的平方根,但没有成功。
帮助Little Z先生找到数字B,它是BIG数字A的平方根。数字A最多有1000位数字,A的平方根将始终是整数。
输入:标准输入的第一行包含数字0
输出:向标准输出写入数字M,其中M表示数字B的长度(其中B是数字A的平方根(,并在接下来的M行中写入数字B的数字(从最高有效数字到最低有效数字(。
输入:3.6.2.5
输出:2.2.5
说明:纸上写的数字是625,它的平方根是25。
我的代码:
#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;
}
这很可能是因为您从未设置k
,并且它在程序开始时包含的随机值为负,因此sqrt(k)
崩溃。此外,如果输入的m
大于1000
,则会超出数组边界。
您的程序将在:niza[i] = k
处崩溃,因为i
已超过数组的末尾。
k
未初始化。您正在输出一个未初始化变量的平方根。
就像@Vilx-所说的,在循环之前,您必须检查m
的值。
此外,sqrt
函数不适用于数字数组,因此您必须想出一种不同的方法来计算基于数字的平方根。
您需要在cin >> m
和cin >> niza[i]
之后检查cin
的状态。用户可以也将输入任何内容,例如字母,当需要数字时,这些内容会导致失败。
此外,请尝试在运算符和函数名之间放置空格。它们不会增加可执行文件的大小或速度,但会使读取和维护更容易。
相关文章:
- 为什么所有C++编译器都会崩溃或挂起此代码
- 为什么lambda在clang上崩溃而不是在gcc上崩溃
- 为什么我的多线程作业队列崩溃
- 为什么引用传递会导致此崩溃(C++)
- 排序时无法执行交换操作.我做的时候它会崩溃.为什么
- 为什么要增加导致崩溃的指针
- 为什么它只打印双链接列表的第一个值,而我的程序却崩溃了
- 为什么当我尝试搜索双链表中第一个数据条目之外的数据时,程序崩溃了?
- 为什么从文件获取图标时应用程序有时会崩溃?
- 为什么gmp会在这里与"invalid next size"重新定位一起崩溃?
- 您好,我实际上想了解以下代码.有人可以详细说明代码它到底在做什么吗?为什么它会在第 31 行崩溃
- 为什么vector::eras似乎会导致崩溃?
- 为什么我的结构在包含字符串时崩溃?
- 为什么在同一条件变量上使用多个互斥锁会使此代码崩溃?
- C++程序崩溃.为什么?
- 类似的代码.一个工作,一个崩溃.为什么?
- 读取空格会使解析器崩溃.为什么?
- 试图在C++中打印变量int会导致它崩溃.为什么?
- 如果程序包含以下代码,则可能会崩溃.为什么
- 递归二叉搜索实现崩溃.为什么