[Atelier Blue アトリエブルー]Homeコンテストパソコン甲子園2004年予選>7問目

7問目(四角形分類)

問題

平行四辺形のデータが沢山あります。その中に含まれる長方形と、菱形の数を数えて出力するプログラムを作成。

入力データはカレントディレクトリの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度になるものです。ピタゴラスの定理で判定しましょう。

ソースコード

お持ち帰り

C/C++

#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;
}


その他

簡単な条件判定とファイル入力です。しっかりとこなしましょう。


ページの一番上へ
前のページへ 一覧に戻る 次のページへ
初版2006-8-23
[Atelier Blue アトリエブルー]Homeコンテストパソコン甲子園2004年予選>7問目