この質問の終わりに、C言語で中間点円描画アルゴリズムがあります。コードで次の2つのステートメントを見た。はx =です。 (d <)がC言語で使用できない場合
x =
if(d <);
私は、コンパイラが自動的に0(ゼロ)に初期化していると思っていたので、私は宿題に同じコードを書いていました。しかし教師はそれが間違っていると言って、実際にがのターボC++コンパイラで無効になっています。なぜそれが間違っているかを知りたいのですが、なぜそんなにこのように書かれているのですか?ここで
コードです:
#include<graphics.h>
#include<conio.h>
#include<stdio.h>
void main() {
int gd=DETECT,gm;
int i,r,x,y,xc,yc;
float d;
clrscr();
initgraph(&gd,&gm,"c:\\tc\\");
printf("Enter Radius\n");
scanf("%d",&r);
printf("Enter Center of circle\n");
scanf("%d",&xc);
scanf("%d",&yc);
d=1.25-r;
x=;
y=r;
do {
if(d<) {
x=x+1;
d=d+2*x+1;
} else {
x=x+1;
y=y-1;
d=d+2*x-2*y+10;
}
putpixel(xc+x,yc+y,5);
putpixel(xc-y,yc-x,5);
putpixel(xc+y,yc-x,5);
putpixel(xc-y,yc+x,5);
putpixel(xc+y,yc+x,5);
putpixel(xc-x,yc-y,5);
putpixel(xc+x,yc-y,5);
putpixel(xc-x,yc+y,5);
} while(x<y);
getch();
}
また、それは、上記のコードのリンクです:
Mid Point Circle Drawing Algorithm Code in c Language
私を助けてください。ありがとう。
どこかのようなコードを見た場合、間違っています。 Cの仕組みではありません。そして、あなたは「どこでもこのように書かれている」という意味ですか?私は、動作しないコードの例を除いて、そのような表現を見たことはありません。 –
あなたは、実際に使用しようとしている言語*(C **または** C++)を使用することを目的とした良い本と、過去十年ほどの間に作られたツールチェーン(b)が必要です。 – WhozCraig
コンパイラは、関数スコープ内の変数を初期化しません。静的変数として宣言すると、それらは初期化されます。未定義の動作を避けるために、変数を常に初期化することをお勧めします。 –