0

次のコードを使用して、境界塗りつぶしアルゴリズムを C 言語で実装しました:--

/* WAP to fill the polygon using boundary fill 4 connected algo */

#include "stdio.h"
#include "conio.h"
#include "graphics.h"
#include "dos.h"

void main()
{

    int gd = DETECT, gm;
    clrscr();

    detectgraph(&gd, &gm);
    initgraph(&gd, &gm , "C:\\TC\\BGI");

    rectangle(60,60,500,500);
    boundary_fill(65,65,4,15);
    getch();
    closegraph();
}

boundary_fill(int x, int y, int fclr, int bclr)
{

    if(getpixel(x,y)!= bclr && getpixel(x,y)!= fclr)
    {
        putpixel(x,y,fclr);
        boundary_fill(x+1,y,fclr,bclr);
        boundary_fill(x-1,y,fclr,bclr);
        boundary_fill(x,y+1,fclr,bclr);
        boundary_fill(x,y-1,fclr,bclr);

    }
}

コンパイルしてもエラーは発生しません。しかし、プログラムを実行すると、ウィンドウが閉じて次のエラーが表示されます:-- C:\TC\BIN\TC.EXE The NTVDM CPU has enroller an illegal instruction.. . . . . .

助けてください

4

1 に答える 1

2

TurboCの使用を停止します。代わりに、DosBoxを使用して16ビットプログラム(TurboC / C ++など)を実行してください。NTVDMエラーは、32ビットCOMMAND-PROMPTが16ビットプログラムを実行しようとしたために発生します。

于 2012-10-18T09:02:57.333 に答える