12週目 課題

Download Report

Transcript 12週目 課題

問題 1
複素数を構造体として定義し、二つの複素数の積(結果は複素数)を返す
関数 cmult を定義せよ。
#include <stdio.h>
struct complex {
double real, imag;
};
typedef struct complex Complex;
Complex cmult(Complex, Complex);
main()
{
Complex x = {1.0, 1.0};
Complex y = {1.414, 1.414};
Complex z;
z = cmult(x,y);
printf(“z = %f + %fi\n”, z.real, z.imag);
}
1
問題 2
学生のデータを扱う為の構造体を定義せよ。この構造体の値を設定する
ための入力関数read_dataと出力する関数write_dataを作れ。
データは各自適当に決めてよい。名前は、文字型の配列とし、サイズは20文字
にする。
./a.out
名前は: kako-fujio
学籍番号は: 999999
年齢:20
#include <stdio.h>
身長:163.4
struct student {
体重:72.5
必要な変数を定義;
登録データ
};
kako-fujio
999999
main()
20歳
{
163.4 cm
struct student s;
72.5kg
read_data(&s);
printf(“登録データ\n”);
write_data(s);
}
2
問題 3
時(hour)、分(minute)、秒(second)からなる構造体(time)を定義し、
時刻の和と差をそれぞれ求める関数
struct time timeadd(struct time a, struct time b);
struct time timesub(struct time a, struct time b);
を作成せよ。
時は、0から23までで、24時は0、また−1時は23時とする。
12時23分10秒+5時40分15秒=18時3分25
秒
12時23分10秒−5時40分15秒=6時42分55
秒
出力の関数
void print(struct time a)
{
printf(“%d時%d分%d秒”, a.hour,
a.minute, a.second);
}
3
問題 4
平面での座標ベクトル(x、y)を構造体として定義し、
2点間の距離を求める関数をプログラムせよ。
また、この関数を用いて与えられた3点を頂点とする
三角形の面積を求めるプログラムを作成せよ。
ヘロンの公式
4
問題 5
キーボードから文字を 1 文字ずつ読み込み、Ctrl-D で中断する。読み込んだ文字を
ファイルに書き出すプログラムを作れ。なお書きだすファイルの名前もキーボードか
ら入力するとする。
% ./a.out
ファイル名:text_file
文字を入力せよ(Ctrl-Dで終了)
Summer vacation is close at hand!
Ctrl-D
%
% cat text_file
Summer vacation is close at hand!
書き出したファイルの内容を確
認せよ。
%
5