====== C言語 ======
使えるかもしれない使えないプログラム。
===== FizzBuzz =====
#include
int main(void) {
int i;
for(i=1; i<=100; i++) {
if(i%15 == 0) {
printf("FizzBuzz");
}
else if(i%3 == 0) {
printf("Fizz");
}
else if(i%5 == 0) {
printf("Buzz");
}
else {
printf("%d", i);
}
printf("\n");
}
return 0;
}
===== 3本の線分の長さから、成立する三角形の面積と内接円/外接円の半径を出力 =====
3本の線分の長さを入力させ、その3本の線分から三角形を作れる場合に、その三角形の面積、内接円の半径、外接円の半径を求める。
三角形が成立しない場合には、エラーを表示する。
#include
#include
#include
bool isValidTriangle(float a, float b, float c);
float getHalfCircumference(float a, float b, float c);
float getTriangleArea(float a, float b, float c);
float getIncircleRadius(float a, float b, float c);
float getCircumcircleRadius(float a, float b, float c);
int main(void) {
float a, b, c;
printf("線分の長さを入力(入力例:3 4 5):");
scanf("%f %f %f", &a, &b, &c);
printf("%f %f %f\n", a, b, c);
if(!isValidTriangle(a, b, c)) {
return 0;
}
printf("面積: %f\n内接円の半径: %f\n外接円の半径: %f\n",
getTriangleArea(a, b, c),
getCircumcircleRadius(a, b, c),
getCircumcircleRadius(a, b, c));
return 0;
}
bool isValidTriangle(float a, float b, float c) {
if(a <= 0 || b <= 0 || c <= 0) {
printf("ERROR: 値が不正です。\n");
return false;
} else if(fabsf(a-b) >= c || c >= a+b) {
printf("ERROR: 三角形が成立しません。\n");
return false;
} else {
return true;
}
}
float getHalfCircumference(float a, float b, float c) {
return (a+b+c) / (float)2;
}
float getTriangleArea(float a, float b, float c) {
float s = getHalfCircumference(a, b, c);
return sqrt(s * (s-a) * (s-b) * (s-c));
}
float getIncircleRadius(float a, float b, float c) {
return (float)2 * getTriangleArea(a, b, c) / (a+b+c);
}
float getCircumcircleRadius(float a, float b, float c) {
return (a*b*c) / ((float)4 * getIncircleRadius(a, b, c) * getHalfCircumference(a, b, c));
}
==== 三辺の長さから三角形が成立するかを返す関数 ====
bool isValidTriangle(float a, float b, float c) {
if(a <= 0 || b <= 0 || c <= 0) {
printf("ERROR: 値が不正です。\n");
return false;
} else if(fabsf(a-b) >= c || c >= a+b) {
printf("ERROR: 三角形が成立しません。\n");
return false;
} else {
return true;
}
}
==== 三辺の長さから半周長を求める関数 ====
float getHalfCircumference(float a, float b, float c) {
return (a+b+c) / (float)2;
}
==== 三辺の長さから三角形の面積を求める関数 ====
float getTriangleArea(float a, float b, float c) {
float s = getHalfCircumference(a, b, c);
return sqrt(s * (s-a) * (s-b) * (s-c));
}
==== 三辺の長さから内接円の半径を求める関数 ====
float getIncircleRadius(float a, float b, float c) {
return (float)2 * getTriangleArea(a, b, c) / (a+b+c);
}
==== 三辺の長さから外接円の半径を求める関数 ====
float getCircumcircleRadius(float a, float b, float c) {
return (a*b*c) / ((float)4 * getIncircleRadius(a, b, c) * getHalfCircumference(a, b, c));
}