平行四辺形のデータが沢山あります。その中に含まれる長方形と、菱形の数を数えて出力するプログラムを作成。
入力データはカレントディレクトリの007.csv保存されている。
長方形・・・すべての角の角度が等しい四角形。
菱形・・・すべての辺の長さが等しい四角形。
平行四辺形の隣ある二辺の7が里対角線の長さ。長さはすべて整数で与えられる。
辺1の長さ,辺2の長さ,対角線の長さ(1件目のデータ:すべて整数)
辺1の長さ,辺2の長さ,対角線の長さ(2件目のデータ:すべて整数)
辺1の長さ,辺2の長さ,対角線の長さ(3件目のデータ:すべて整数)
...
....
長方形の個数
菱形の個数
3,4,5
5,5,8
4,4,4
5,4,3
1
2
まずすべての長さが整数で与えられることから、正方形がないことが分かります。つまり、菱形と平行四辺形に同時に属す形はありません。
また、菱形は辺1と辺1の長さが一緒のものです。
長方形は、辺1と辺2のなす角が90度になるものです。ピタゴラスの定理で判定しましょう。
#include <stdio.h> int main(){ int a,b,c; FILE *fp; int hishi=0,tyou=0; fp =fopen("007.csv","r"); while(EOF != fscanf(fp,"%d,%d,%d",&a,&b,&c)){ if(a==b){ hishi++; }else if(c*c == a*a+b*b){//ピタゴラスの定理 tyou++; } } printf("%d\n%d\n",tyou,hishi); fclose(fp); return 0; }
簡単な条件判定とファイル入力です。しっかりとこなしましょう。