2013-11-01から1ヶ月間の記事一覧

20131130【C言語】typedefを使う

お題 typedefを使う プログラム概要 typedefでsingned charにsmallintという名前をつけ、 smallintで宣言された変数iをループで0から9まで表示する ソース #include <stdio.h> typedef signed char smallint; int main(void) { smallint i; for (i = 0; i < 10; i++) </stdio.h>…

20131129【C言語】列挙型定数に相当する文字列を取得する

お題 列挙型定数に相当する文字列を取得する プログラム概要 2次元の文字列配列を作って、列挙型定数を添え字にして 相当する文字列を取得して表示する ソース #include <stdlio.h> #include <stdlib.h> #include <time.h> enum transport {car, train, airplane, bus} tp; char trans[][</time.h></stdlib.h></stdlio.h>…

20131128【C言語】enumを使う

お題 enumを使う プログラム概要 enumを使って定数に相当する文字列を出力する。 定数を決めるためには乱数を利用する ソース #include <stdio.h> #include <stdlib.h> #include <time.h> enum transport {car, train, airplane, bus} tp; int main(void) { srand*1; tp = rand() % 4; s</time.h></stdlib.h></stdio.h>…

20131127【C言語】独自のstrcpyを作成する

お題 独自にstrcpyを作成する プログラム概要 main処理から文字列をコピーする独自の関数を呼び出す。 その関数の返り値であるコピー先のchar型のポインタを受け取り、 コピー元とコピー先の文字列の値を表示する ソース #include <stdio.h> char *mystrcpy (char *ta</stdio.h>…

20131126【C言語】constを使う

お題 constを仮引数に使う プログラム概要 関数に文字配列を渡し、関数内で表示する ソース #include <stdio.h> void pr_str(const char *p); int main(void) { char str[80]; printf("Please input string: "); gets(str); pr_str(str); return 0; } void pr_str(con</stdio.h>…

20131125【C言語】static変数を使って累積合計を保持する

お題 static変数を使って累積合計を保持する プログラム概要 関数内でstatic型の変数に引数を累積していき、 随時、累積合計を表示させる ソース #include <stdio.h> void sum_it(int value); int main(void) { /* Call sum_it three times */ sum_it(3); sum_it(6); </stdio.h>…

20131124【C言語】externを使う

お題 externを使う プログラム概要 file1で宣言された変数にfile2からアクセスし、 そこに名前を入力させ、file1から出力する ソース # cat file1.c #include <stdio.h> char str[80]; void getname(void); int main(void) { getname(); printf("Hello, %s!\n", str);</stdio.h>…

20131123【C言語】static変数を使って再帰処理を行う

お題 static変数を使って再帰処理を行う プログラム概要 static変数を再帰関数の制御にして、1-9を順に表示する プログラム概要 f(); return 0; } void f(void) { static int stop = 0; stop++; if (stop == 10) return; printf("%d ", stop); f();/* Recurs…

20131122【C言語】registerを使って処理を高速化させる

お題 registerを使って処理を高速化させる プログラム概要 register変数と普通の変数をカウンタにしてそれぞれloopを回して それぞれのプロセッサ時間を表示する ソース #include <stdio.h> #include <time.h> int i;/* This variable will not be register variable because </time.h></stdio.h>…

20131121【C言語】static変数を使う

お題 static変数を使う プログラム概要 main処理から関数fを呼び出す。 関数fではstaticなint型の変数をインクリメントし 表示する。 なお関数呼び出しは10回行われる ソース #include <stdio.h> void f(void); int main(void) { int i; for (i = 0; i < 10; i++) f()</stdio.h>…

20131121【C言語】共用体を使って、入力された短整数の個々のバイトの文字として表示する

お題 共用体を使って入力された短整数の個々のバイトの文字として表示する プログラム概要 短整数を画面から入力させ、個々のバイトを文字で表示する ソース #include <stdio.h> int main(void) { union u_type { char ch[2]; short int s; } var; printf("Please inp</stdio.h>…

20131119【C言語】構造体配列で2乗と3乗を保持する

お題 構造体配列で2乗と3乗を保持する プログラム概要 構造体配列に1から10までの数字の2乗と3乗を格納し、 この配列の内容を表示する ソース #include <stdio.h> struct s_type { int square; int cube; } var[10]; int main(void) { int i; /* Set square and cube </stdio.h>…

20131118【C言語】配列を関数に値渡しをする

お題 配列を関数に値渡しをする プログラム概要 配列(文字列)を構造体のメンバにすることで、関数に渡す。 関数内で文字列を変更して、呼び出し元で文字列を表示する ソース #include <stdio.h> #include <string.h> struct s_type { char str[80]; } var; void change_string</string.h></stdio.h>…

20131117【C言語】ファイルをコピーする

お題 ファイルをコピーする ソース #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { union u_type { int i; char ch; } var; FILE *fp1, *fp2; /* Check arguments */ if (argc != 3) { fprintf(stderr, "Usage: <Program Name> <Source file> <Target file>.\n"); exit(1); } /* Open input</target></source></program></stdlib.h></stdio.h>…

20131116【C言語】構造体の内容を入れ替える

お題 構造体の内容を入れ替える プログラム概要 二つの構造体のメンバに値をセットし、 ポインタを関数に渡して、関数内で内容を入れ替える。 最後に各構造体のメンバの値を表示させる ソース #include <stdio.h> struct s_type { int i; char ch; double d; } var1, </stdio.h>…

20131115【C言語】short型の上位バイトと下位バイトを表示する

お題 short型の上位バイトと下位バイトを表示する プログラム概要 short型と文字配列で構成される共用体を用意し、 short型メンバに数字を代入し、 下位バイトと上位バイトを表示させる ソース #include <stdio.h> int main(int argc, char *argv[]) { union u_type {</stdio.h>…

20131114【C言語】ファイルのデータを構造体配列に格納する

お題 ファイルのデータを構造体配列に格納する プログラム概要 画面から従業員情報を入力し構造体配列に格納して、ファイルに出力する。 今度はそのファイルから構造体配列に格納し、それを画面に出力する ソース #include <stdio.h> #include <stdlib.h> struct s_type { char </stdlib.h></stdio.h>…

20131114【C言語】構造体配列で従業員を扱う

お題 構造体配列で従業員を扱う プログラム概要 従業員情報を持つ構造体配列に従業員情報を入力していき、 ファイルに出力する ソース #include <stdio.h> #include <stdlib.h> struct s_type { char name[80]; char phone[12]; float time; int hourfee; } emp[3]; int main(vo</stdlib.h></stdio.h>…

20131112【C言語】共用体を使ってintをlongに変換する

お題 共用体を使ってintをlongに変換する プログラム概要 intとlong型を持つ共用体を用意し、int型のメンバに値を代入することで long型に変換する ソース #include <stdio.h> int main(void) { union u_type { int i; int long l; } num; /* l is cleard by 0 */ num</stdio.h>…

20131111【C言語】double型と文字配列の共用体

お題 double型と文字配列の共用体を使う プログラム概要 double型と文字配列の共用体を用意し、 double型の値をディスクファイルに1文字ずつ出力する。 そのディスクファイルを読み込み値を復元して出力する。 ソース #include <stdio.h> #include <stdlib.h> union u_type { do</stdlib.h></stdio.h>…

20131110【C言語】ビットフィールドを持つ構造体を共用体のメンバで使う

お題 ビットフィールドを持つ構造体を共用体のメンバで使う プログラム概要 文字を入力させ、それをビットで出力する ソース #include <stdio.h> struct sample { unsigned a: 1; unsigned b: 1; unsigned c: 1; unsigned d: 1; unsigned e: 1; unsigned f: 1; unsign</stdio.h>…

20131109【C言語】共用体を使う

お題 共用体を使う プログラム概要 共用体の整数メンバに値を代入して、 char型のメンバを入れ替えることで暗号化を行い出力する。 その後、復号化して出力する。 ソース #include <stdio.h> int encode(int i); int main(void) { int i; i = encode(10);/* Encrypt *</stdio.h>…

20131108【C言語】ビットフィールドを使う

お題 ビットフィールドを使う プログラム概要 ビットフィールドを持つ構造体を宣言し、 各ビットフィールドに値を代入し、まとめて表示する ソース #include <stdio.h> struct s_type { unsigned int a: 3; unsigned int b: 3; unsigned int c: 2; } i; int main(void</stdio.h>…

20131107【C言語】ビットフィールドを使う

お題 ビットフィールドを使う プログラム概要 スペースシャトルの機体情報を構造体で宣言し、各情報をビットフィールドとする。 各ビットフィールドにランダムな値(0 or 1)を格納することを3回実施する。 実施の度に、各ビットフィールドに基づく情報を表…

20131106【C言語】構造体を構造体でネストする

お題 構造体を構造体でネストする プログラム概要 簡易図書管理データベース ソース #include <stdio.h> #include <string.h> #include <stdlib.h> #define MAX 100 int menu(void); void display(int i); void author_search(void); void title_search(void); void enter(void); void sav</stdlib.h></string.h></stdio.h>…

20131105【C言語】世界標準時刻を表示する

お題 世界標準時刻を表示する プログラム概要 世界標準時刻をgmtimeで取得し、表示する ソース #include <stdio.h> #include <time.h> int main(void) { struct tm *systime; time_t t; t = time(NULL); systime = gmtime(&t); printf("Time: %.2d:%.2d:%.2d\n", systime->tm_</time.h></stdio.h>…

20131104【C言語】システム日時を表示する

お題 システム日時を表示する ソース #include <stdio.h> #include <time.h> int main(void) { struct tm *systime; time_t t; t = time(NULL); systime = localtime(&t); printf("Time: %.2d:%.2d:%.2d\n", systime->tm_hour, systime->tm_min, systime->tm_sec); printf("Da</time.h></stdio.h>…

20131103【C言語】構造体でポインタを使う

お題 構造体でポインタを使う プログラム概要 構造体ポインタ型変数に構造体変数を代入し、 それぞれのメンバに値を代入し標準出力する ソース #include <stdio.h> #include <string.h> struct s_type { int i; char str[80]; } s, *p; int main(void) { p = &s; s.i = 10; p->i</string.h></stdio.h>…

20131102【C言語】構造体を関数に渡す

お題 構造体を関数に渡す プログラム概要 main処理で構造体メンバに値を代入し、 それを関数に渡し、関数内で標準出力させる ソース #include <stdio.h> struct s_type { int i; double d; }; void f(struct s_type temp); int main(void) { struct s_type var1; var1</stdio.h>…

20131101【C言語】構造体配列を使う

お題 構造体配列を使う プログラム概要 本検索システムだが詳細は省略 ソース #include <stdio.h> #include <string.h> #include <stdlib.h> #define MAX 100 int menu(void); void display(int i); void author_search(void); void title_search(void); void enter(void); void save(void</stdlib.h></string.h></stdio.h>…