C++ 在下面的程序中,编译器在哪里遇到浮点?核心倾销的含义是什么?

C++ 在下面的程序中,编译器在哪里遇到浮点?核心倾销的含义是什么?,c++,C++,下面的代码返回浮点错误,它从哪里找到错误 #include<iostream> using namespace std; int main(){ int x[10]; int y = 1000000000; long z = 2312432321; int a = 0; for(int i = 0; i < 10; i++){ a = z/y; x[i] = a; y /= 10;

下面的代码返回浮点错误,它从哪里找到错误

#include<iostream>

using namespace std;

int main(){
    int x[10];
    int y = 1000000000;
    long z = 2312432321;
    int a = 0;
    for(int i = 0; i < 10; i++){
        a = z/y;
        x[i] = a;
        y /= 10;
        z %= y;
    }

    for(int j = 0; j < 10; j++){
        cout << x[j] << " ";
    }

}
#包括
使用名称空间std;
int main(){
int x[10];
int y=100000000;
长z=2312432321;
int a=0;
对于(int i=0;i<10;i++){
a=z/y;
x[i]=a;
y/=10;
z%=y;
}
对于(int j=0;j<10;j++){

cout错误出现在执行时,而不是编译时(因此遇到错误的不是编译器)

在最后一次迭代中,
y/=10
使
y
be
0
,因此
z%=y
抛出一个错误


此外,正如评论中提到的,您应该使用调试器来检测这些错误,这将在许多情况下帮助您,并为您节省大量时间。

首先使用调试器来捕获崩溃,并找到它发生在代码中的位置。然后查看所涉及的变量以查看它们的值。我猜?
y
将变为零除以它。你应该在调试器下运行你的代码。问题似乎出在
z%=y;
y==0
。如何学习使用调试器?哪个ide值得?RaphaelHawk这真的取决于你需要什么,你使用什么平台,你已经知道什么,你认为什么对你的未来有好处,如果你能付钱的话…您应该搜索最常见的选项,然后自己比较它们。如果某个问题很简单,不值得回答,或者在发布答案之前已经在评论中得到了回答,那么用户似乎会投反对票。我不知道您的解释有什么问题,但我的代码的问题是z%=y发生在y/=10之后,所以直到最后一次迭代y变为z之前的0,这和你说的一样。