簡體   English   中英

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;
}

這段代碼中的問題是:您已經對int v[18];進行了除法int v[18]; 大小為18(0〜17)的數組和for (i = 0; i <= 18; i++)的循環導致非法內存訪問。 它應該是 :

for (i = 0; i < 18; i++)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM