c++ - 我的程序正在退出,返回值 3221225620
问题描述
我已经为数组旋转编写了一个 cpp 代码,文件处理部分对我来说有点棘手。代码本身是正确的,但即使文件与代码位于同一目录中,由于某种原因它也无法正常工作
#include <math.h>
#include <algorithm>
#include <bits/stdc++.h>
#include <iostream>
#include <fstream>
using namespace std;
int ar[100];
// #define crap ios_base::sync_with_stdio(false);cin.tie(NULL);
int gcd(int a, int b)
{
if (b == 0)
return a;
else
return gcd(b, a % b);
}
void leftRotate(int arr[], int d, int n)
{
d = d % n;
int g_c_d = gcd(d, n);
for (int i = 0; i < g_c_d; i++) {
int temp = arr[i];
int j = i;
while (1) {
int k = j + d;
if (k >= n)
k = k - n;
if (k == i)
break;
arr[j] = arr[k];
j = k;
}
arr[j] = temp;
}
}
//int *func(int m)
//{
// int *p;
// p=new int[m];
// return (p);
//}
int main()
{
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif
// crap;
int n,d;
cin>>n>>d;
// ar=func(n);
// cout<<sizeof(ar);
for (int i=0;i<n;i++)
{
cin>>ar[i];
}
leftRotate(ar, d, n);
for (int i = 0; i < n; i++)
cout << ar[i] << " ";
return 0;
}
代码本身正在工作并在终端中返回正确的输出,但我似乎无法在这里找到问题,我在没有文件处理的情况下尝试过,它在终端示例输入处给出了返回值 3221225620:
5 2
1 2 3 4 5
解决方案
这里显示一个可能的错误:
3221225620 (0xC0000094): Zero Division Error
意味着代码中的除数有时可能为零。
至于您的代码(第 20 行:)d = d % n;
,当您n
是时0
,输出将显示return value 3221225620
所以请检查您的数据"input.txt"
推荐阅读
- python - 如何导入进一步导入其他文件的python文件。没有得到 ImportError?
- javascript - 使用 axios 向服务器发出请求会冻结 React Native 应用程序
- regex - 如何修复此正则表达式以匹配我想要的字符串?
- python - Python:如何遍历树的所有未知深度?
- java - 编译报错包 com.fasterxml.jackson.annotation 不存在
- html - VBA IE 如何使用 MouseEvetns 'mouseover' 和 'mouseleave' 单击按钮
- arrays - R中按列进行的复杂元素比较
- c# - 当.Result()使方法挂起时如何在构造函数中使用异步方法?
- c# - 使用 Blazor 的默认 SignalR 连接发送“Hello World”
- flutter - 在 Flutter Web 中读写文件