CodeBlocks c++输出文件
CodeBlocks C++ Output Files
我正在为奥运会编程,我正在研究一些算法问题。一只非常愚蠢和奇怪的虫子过来了。我不能处理输出文件是有原因的。我试着打开一个旧项目,一切都很好,但每当我创建一个新项目时,它就会崩溃。我从来没有遇到过这个问题,我工作了很多CodeBlocks,这里是代码,虽然我不认为问题是来自我的代码:
#include<stdio.h>
using namespace std;
const int N = 18;
int sol = 0, a[N], s, n;
bool numere[N];
void bkt (int v[])
{
int i, nr, j;
for (i = 1; i <= n; i++)
{
if (numere[a[i]] == false)
{
nr = a[i];
numere[a[i]] = true;
v[0] = 1;
for (j = 0; j + nr <= s; j++)
if (v[j] != 0)
v[j] += 1;
for (j = 1; j <= s; j++)
sol += v[j];
bkt (v);
for (j = 0; j + nr <= s; j++)
if (v[j] != 0)
v[j] -= 1;
numere[a[i]] = false;
}
}
}
int main ()
{
FILE *in, *out;
in = fopen ("monezi.in", "r");
out = fopen ("monezi.out", "w");
fscanf (in, "%d%d", &n, &s);
int i;
for (i = 0; i < n; i++)
fscanf (in, "%d", &a[i]);
int v[18];
for (i = 0; i <= 18; i++)
v[i] = 0;
bkt (v);
fprintf (out, "dds");
return 0;
}
这段代码中的问题是:您已经声明了大小为18(0~17)的int v[18];
数组,并且您的循环for (i = 0; i <= 18; i++)
正在导致非法内存访问。应该是:
for (i = 0; i < 18; i++)
相关文章:
- 如何在 的开头<x>和结尾<y>之间更改带有文件输出的字符串的值
- C++对象数组的文件输出
- bcdedit 文件输出不起作用,但其他命令可以
- 如何从文本文件输出数据?(学生成绩单计划)
- 使用 C++文件 I/O 输出 pdf 文件
- C 文件输出垃圾
- 从堆栈中读取字符后,如何修复不正确的文件输出
- C++:具有随机名称的文件输出
- 在命令提示符下看到换行符,但在文件输出中可以看到 相同的字符串
- 生成文件不会生成预期的文件输出
- C++11 fgetc 在"r+b"模式下使用时向我的文件输出 0
- 使用函数从文件输出
- GCC.obj文件输出不具有确定性(.debug_info,PROGPITS部分)
- C cstdiofile :: Writestring给出了不正确的文件输出
- C 输出:STD :: COUT和文件输出没有相同的内容
- GCC和MSVC之间的文件输出不一致
- C++文件输出奇怪的数字,并且部分代码没有运行
- 如何将特定字符从TXT文件输出到特定点
- C 调用从TXT文件输出信息的函数
- 将交易从文本文件输出到屏幕