円を計算するときにプログラムが54行目でクラッシュするように見えます[3] [6]。これを引き起こす原因は何ですか?私はいくつかの情報を見つけるためにたくさんの声明文を入力しました。すべてが正確になるまでうまくいっているようです。[3] [6]、それは特別なことではないようです。フロートをランダム化した後にプログラムがクラッシュする
int main() {
double a, b, circleXMax, circleYMax, circleRMax;
double rand_float(double a, double b);
int i, j;
int circleInfo = 3;
int circleNum = 50;
int PI = 3.14;
double circleArea;
double circleAreaMax = 0;
double circles[circleInfo][circleNum];
printf("Opened \n");
for(i = 1; i <= circleNum; i++) {
printf("Start of i = %d \n", i);
for(j = 1; j <= circleInfo; j++) {
printf("Start of j = %d \n", j);
if(j == 1 || j == 2) {
printf("Start of randomization of j (%d) \n", j);
circles[j][i] = rand_float(100.00, 900.00);
printf("circles[%d][%d] = %f \n", j, i, circles[j][i]);
}
else {
printf("Start of randomization of j (%d) \n", j);
circles[j][i] = rand_float(0.00, 100.00);
printf("circles[%d][%d] = %f \n", j, i, circles[j][i]);
}
}
printf("Start of calculation of circleArea \n");
circleArea = PI * circles[3][i] * circles[3][i];
printf("Completed calculation of circleArea = %f \n", circleArea);
if(circleArea >= circleAreaMax) {
printf("circle was larger then maximum current \n");
circleAreaMax = circleArea;
circleXMax = circles[1][i];
circleYMax = circles[2][i];
circleRMax = circles[3][i];
} else {
printf("circle was NOT larger then maximum current \n");
}
}
printf("Circle with largest area (%f) has\n", circleAreaMax);
printf("center (%f, %f) and radius %f", circleXMax, circleYMax, circleRMax);
}
double rand_float(double a, double b) {
printf("doing a randomization via rand_float \n");
return (((double)rand()/RAND_MAX)*(b-a))+a;
}
それは言って後にクラッシュ:
"Jのスタート= 3"
"スタート(3)Jのランダム化の"
"rand_floatを経由してランダム化を行っています"
アレイインデックスは「0」から始まり、サイズマイナス1になることを覚えていますか? –
@エヴァンあなたは実際に前のコメントを理解しましたか?私はそうは思わない。 –