3週目 課題

問題 1
三角形の二辺の長さ a, b とその間の角度Cが与えられたとき、その三角形の
面積は
となる。二辺の辺の長さを角度を入力して三角形の面積を求めるプログラムを
作成せよ。面積の表示は小数点以下2 桁までとする。角度は度数で入力する。
%./a.out
% 二辺の長さを入力:3 4
% 角度を入力:30
面積は 3.00 です
c
a
C
b
1
問題 2
2次方程式 ax2 + bx + c = 0 の解を求めるプログラムを作成せよ。解が、
実数でないばあいには、その旨を表示する。係数 a, b, c は実数として入
力する。
(数値はカンマ(,)で区切って入力するものとする。scanfで変換指定を,で
区切る。 scanf(“%lf,%lf,%lf”, &x, &y, &z);)
% ./a.out
% 実数の係数を3つ入力せよ: 1, 4, 3
解は−1と−3です。
%
%./a.out
% 実数の係数を3つ入力せよ: 1, 4, 5
解は実数ではありません。
%
判別式 D = b2 – 4ac を使う。ただし 2次係数 a が 0 の時、判定が複雑にな
るので、a はゼロでないとする。
2
問題 3
月( 1 から 12)を入力してその季節(春夏秋冬)を出力するプログラム
不適当な入力はその旨表示して処理すること。
% ./a.out
% 月を入力せよ: 5
5 月は春です。
%
%./a.out
% 月を入力せよ: 12
12 月は冬です。
%./a.out
% 月を入力せよ: 777
そんな月はありません。
%
3, 4, 5 月は春
6, 7, 8 月は夏
9, 10, 11 月は秋
12, 1, 2 月は冬
とする
月(変数mとする)が3,4または5
であるという条件式は
(m==3 || m== 4 || m==5)
であらわされる。
3
問題 4
閏年は、西暦で表した年が、4で割り切れる年である。ただし、100で割り切れて、
400で割り切れない年は閏年ではない。
西暦での年を入力して、閏年か閏年でないかを判定するプログラムを
書け。(割り切れるかどうかは割ったあまりが0になるかどうかで判定出来る。)
% ./a.out
% 年を入力せよ: 2000
2000年は閏年です。
%
%./a.out
%年を入力せよ: 2012
2012年は閏年です。
%./a.out
% 月を入力せよ: 2100
2100年は閏年ではありません。
%
4