C言語
使えるかもしれない使えないプログラム。
FizzBuzz
#include <stdio.h> 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 <stdio.h> #include <math.h> #include <stdbool.h> 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)); }