Download : sample-001.c
/*
 * 2020/09/18 sample-001.c
 */
/*
 *  Hello, World
 *
 *	いつでも、始まりはこれから..
 *
 * 利用方法
 *		コンパイル
 *			cc -Ic:\usr\c\include -o sample-001.exe sample-001.c
 *		実行
 *			sample-001
 */
#include <stdio.h>
/*
 *	main
 */
int main( double argc, char *argv[] )
{
	printf ( "Hello, World\n" );
	return 0;
}
$ ./sample-001.exe Hello, World $
Download : sample-002.c
/*
 * 2020/09/18 sample-002.c
 */
/*
 * n^2 の計算を足し算だけで実現する
 *
 * 利用方法
 *		コンパイル
 *			cc -Ic:\usr\c\include -o sample-002.exe sample-002.c
 *		実行
 *			sample-002
 */
#include <stdio.h>
#include "s_input.h"
#include "s_print.h"
/*
 * 四角数 http://ja.wikipedia.org/wiki/%E5%B9%B3%E6%96%B9%E6%95%B0
 */
/*
 * main
 */
int main ( int argc, char *argv[] ) {
	int n = 13;		/* n=13 として n^2 = n*n = 13*13 = 169 を計算する */
	int i = 0;		/* i は、0 から n-1 まで動き、足し算の回数を示す */
	int sum = 0;	/* sum には、個々の odd の値が足しこまれる。最初は 0 */
	int odd = 1;	/* odd は、最初は 1 で、以後 2 ずつふえる(奇数) */
	while ( i < n ) {		/* i が n より小さい間 */
		sum = sum + odd;	/* sum に現在の奇数を加える */
		odd = odd + 2;		/* 次の奇数は、今の奇数に 2 を加えればよい */
		i = i + 1;			/* 何回加えたかを計数し、繰返し回数を確認する */
	}
	s_print_int ( sum );	/* 加えた結果が表示される n^2 になっているはず.. */
	s_print_newline();
	return 0;
}
$ ./sample-002.exe 169 $
Download : sample-003.c
/*
 * 2020/09/18 sample-003.c
 */
/*
 *  printf の書式付き出力
 *
 * 利用方法
 *		コンパイル
 *			cc -Ic:\usr\c\include -o sample-003.exe sample-003.c
 *		実行
 *			sample-003
 */
#include <stdio.h>
/*
 *	main
 */
int main( int argc, char *argv[] )
{
	printf ( "5 + 4 = %d\n", 5 + 4 );
		/* 文字列の中の「%d」の所に 9 ( = 5 + 4 ) が入る */
	return 0;
}
$ ./sample-003.exe 5 + 4 = 9 $
Download : sample-004.c
/*
 * 2020/09/18 sample-004.c
 */
/*
 *  printf の書式付き出力(その他色々)
 *
 * 利用方法
 *		コンパイル
 *			cc -Ic:\usr\c\include -o sample-004.exe sample-004.c
 *		実行
 *			sample-004
 */
#include <stdio.h>
/*
 *	main
 */
int main( int argc, char *argv[] )
{
	printf ( "%d + %d = %d\n", 5, 4,  5 + 4 );
		/*
				文字列の中の「%d」の所に
				順番に数値を表す文字列が埋め込まれる */
	return 0;
}
$ ./sample-004.exe 5 + 4 = 9 $
Download : sample-005.c
/*
 * 2020/09/18 sample-005.c
 */
/*
 *  printf の書式付き出力(その他色々)
 *
 * 利用方法
 *		コンパイル
 *			cc -Ic:\usr\c\include -o sample-005.exe sample-005.c
 *		実行
 *			sample-005
 */
#include <stdio.h>
/*
 *	main
 */
int main( int argc, char *argv[] )
{
	printf ( "整数型の出力は %%d を使って「%d」と出せる。\n",
				123 );	
	printf ( "浮動小数点数型の出力は %%f を使って「%f」と出せる。\n",
				123.456 );	
	printf ( "文字型の出力は %%c を使って「%c」と出せる。\n",
				'Z' );
	printf ( "文字列の出力は %%s を使って「%s」と出せる。\n",
				"pqr" );
	return 0;
}
$ ./sample-005.exe 整数型の出力は %d を使って「123」と出せる。 浮動小数点数型の出力は %f を使って「123.456000」と出せる。 文字型の出力は %c を使って「Z」と出せる。 文字列の出力は %s を使って「pqr」と出せる。 $
Download : sample-006.c
/*
 * 2020/09/18 sample-006.c
 */
/*
 *  printf の書式付き出力(その他色々)
 *
 * 利用方法
 *		コンパイル
 *			cc -Ic:\usr\c\include -o sample-006.exe sample-006.c
 *		実行
 *			sample-006
 */
#include <stdio.h>
/*
 *	main
 */
int main( int argc, char *argv[] )
{
	printf ( "書式は、色々な形の物のを混在させても良い。\n" );
	printf ( "%d, %f, %c, %s\n", 10, 2.3, 'x', "abc" );
	return 0;
}
$ ./sample-006.exe 書式は、色々な形の物のを混在させても良い。 10, 2.300000, x, abc $
Download : sample-007.c
/*
 * 2020/09/18 sample-007.c
 */
/*
 *  scanf の書式付き入力
 *
 * 利用方法
 *		コンパイル
 *			cc -Ic:\usr\c\include -o sample-007.exe sample-007.c
 *		実行
 *			sample-007
 */
#include <stdio.h>
/*
 *	main
 */
int main( int argc, char *argv[] )
{
	int i;
	printf ( "整数値を入力してください : " );
	scanf ( "%d", &i );
			/* 整数型なので「%d」の書式を付ける */
			/* 変数 i の前に「&」を付ける(今回は「お呪い」考えてください)*/
	printf ( "整数値 %d が入力されました。\n", i );
	return 0;
}
123
$ ./sample-007.exe < sample-007.in 整数値を入力してください : 123 整数値 123 が入力されました。 $
Download : sample-008.c
/*
 * 2020/09/18 sample-008.c
 */
/*
 *  scanf の書式付き入力(色々)
 *
 * 利用方法
 *		コンパイル
 *			cc -Ic:\usr\c\include -o sample-008.exe sample-008.c
 *		実行
 *			sample-008
 */
#include <stdio.h>
/*
 *	main
 */
int main( int argc, char *argv[] )
{
	int i;
	double x;
		/* 整数 */
	printf ( "整数値を入力してください : " );
	scanf ( "%d", &i );
			/* 整数型なので「%d」の書式を付ける */
			/* 変数 i の前に「&」を付ける(今回は「お呪い」と考える)*/
	printf ( "整数値 %d が入力されました。\n", i );
		/* 浮動小数点数 */
	printf ( "浮動小数点数値を入力してください : " );
	scanf ( "%lf", &x );
			/* 浮動小数点数型なので「%lf」の書式を付ける */
			/* 変数 x の前に「&」を付ける(今回は「お呪い」と考える)*/
	printf ( "浮動小数点数値 %f が入力されました。\n", x );
	return 0;
}
123 456.789
$ ./sample-008.exe < sample-008.in 整数値を入力してください : 123 整数値 123 が入力されました。 浮動小数点数値を入力してください : 456.789000 浮動小数点数値 456.789000 が入力されました。 $
Download : sample-009.c
/*
 * 2020/09/18 sample-009.c
 */
/*
 *  一文字鸚鵡返しをするプログラム
 *		キーボードから文字を入力するには、「Enter」を押す必要がある
 *		# つまり、「'A'の一文字」を入力する場合も「'A'」と[ENTER]のニ文字の入力が必要って事
 *		# 厄介な事に、もちろん [ENTER] も一文字になる。
 *
 * 利用方法
 *		コンパイル
 *			cc -Ic:\usr\c\include -o sample-009.exe sample-009.c
 *		実行
 *			sample-009
 */
#include <stdio.h>
/*
 *	main
 */
int main( int argc, char *argv[] )
{
	int ch;		/* 文字を扱うのだが、都合により整数型(int 型)を使う */
	ch = getchar();	/* 一文字入力する */
	putchar ( ch );	/* その文字を出力する */
	return 0;
}
A
$ ./sample-009.exe < sample-009.in A A$
Download : sample-010.c
/*
 * 2020/09/18 sample-010.c
 */
/*
 *  一文字と改行を鸚鵡返しをするプログラム
 *
 * 利用方法
 *		コンパイル
 *			cc -Ic:\usr\c\include -o sample-010.exe sample-010.c
 *		実行
 *			sample-010
 */
#include <stdio.h>
/*
 *	main
 */
int main( int argc, char *argv[] )
{
	int ch;		/* 文字を扱うのだが、都合により整数型(int 型)を使う */
	ch = getchar();	/* 一文字入力する */
	putchar ( ch );	/* その文字を出力する */
	ch = getchar(); /* ニ文字目(恐らく [Enter]) を入力する */
	putchar ( ch );	/* その文字を出力する */
	return 0;
}
A
$ ./sample-010.exe < sample-010.in A A $
Download : sample-011.c
/*
 * 2020/09/18 sample-011.c
 */
/*
 *  「終わり」のマークが来るまで鸚鵡返し
 *
 * 利用方法
 *		コンパイル
 *			cc -Ic:\usr\c\include -o sample-011.exe sample-011.c
 *		実行
 *			sample-011
 */
#include <stdio.h>
/*
 *	main
 */
int main( int argc, char *argv[] )
{
	int ch;
	ch = getchar();		/* 最初の一文字入力する */
	while ( ch != EOF )	{	/* 「入力」が EOF でなければ.. 以下を繰り返す */
			/* EOF は「End Of File(ファイルの終わり)」を示す */
			/* EOF は文字(コード)ではなく、整数型 */
			/* ch を整数型(int 型)にしたのは EOF が入る可能性があるので.. */
			/* 間違えて ch を char で宣言すると EOF の判定ができない */
		putchar ( ch );	/* 入力された文字を出力する */
		ch = getchar();	/* 次の文字を入力する (EOF の可能性もある..) */
	}
	/* 「Windows」で、「キーボード」から「EOF」を入力する場合は
		Ctrol-Z ( ^Z : [Ctrl] キーを押しながら 「Z」をポンと押す)
		を入力する ( OS や入力先により、操作が異る事が多い .. )
	*/
	return 0;
}
This is first line. And, it is second line. Last, it is third line.
$ ./sample-011.exe < sample-011.in This is first line. This is first line. And, it is second line. And, it is second line. Last, it is third line. Last, it is third line. $
Download : sample-012.c
/*
 * 2020/09/18 sample-012.c
 */
/*
 *  鸚鵡返しの fgtec, fputc 版
 *
 * 利用方法
 *		コンパイル
 *			cc -Ic:\usr\c\include -o sample-012.exe sample-012.c
 *		実行
 *			sample-012
 */
#include <stdio.h>
/*
 *	main
 */
int main( int argc, char *argv[] )
{
	int ch;
	ch = fgetc ( stdin );		/* 入力元を stdin (標準入力) にする */
	while ( ch != EOF )	{		/* 「入力データ」が EOF になるまで */
		fputc ( ch, stdout );	/* 出力先を stdout (標準出力) にする */
		ch = fgetc ( stdin );
	}
	return 0;
}
This is first line. And, it is second line. Last, it is third line.
$ ./sample-012.exe < sample-012.in This is first line. And, it is second line. Last, it is third line. $
Download : sample-013.c
/*
 * 2020/09/18 sample-013.c
 */
/*
 *  stdout と stderr の違い
 *
 * 利用方法
 *		コンパイル
 *			cc -Ic:\usr\c\include -o sample-013.exe sample-013.c
 *		実行
 *			sample-013
 */
#include <stdio.h>
/*
 *	main
 */
int main( int argc, char *argv[] )
{
	printf ( "O: これは標準出力\n" );
		/* printf は標準出力に出す */
	fprintf ( stderr, "E: これは標準エラー出力\n" );
		/* 標準エラー出力に出す場合は、fprintf を用い、stderr を指定する */
	fprintf ( stdout, "O: これも標準出力\n" );
		/* fprintf で stdout を指定すれば、標準出力に出せる */
	fprintf ( stderr, "E: 再び標準エラー出力\n" );
	/*
		だまっていると、混在して画面に表示される
		標準出力をリダイレクトすると、この二つが分離できる
	*/
	return 0;
}
O: これは標準出力 E: これは標準エラー出力 O: これも標準出力 E: 再び標準エラー出力
Download : sample-014.c
/*
 * 2020/09/18 sample-014.c
 */
/*
 *  fopen の利用
 *
 * 利用方法
 *		コンパイル
 *			cc -Ic:\usr\c\include -o sample-014.exe sample-014.c
 *		実行
 *			sample-014
 */
#include <stdio.h>
/*
 *	main
 */
int main( int argc, char *argv[] )
{
	FILE	*ifp;		/* ファイルポインタ変数の宣言 */
	ifp = fopen ( "sample-014.c", "r" );
						/* sample-014.c を 読み出しモードで開く */
	if ( ifp == NULL ) {	/* Open に失敗した場合は.. */
		fprintf ( stderr, "ファイルのオープンに失敗しました。\n" );
						/* エラーメッセージを出力 */
		/* 後は何もしない(クローズもしない) */
	} else {				/* Open に成功した場合のみ利用してよい */
		int ch;
		ch = fgetc ( ifp );		/* fgetc で、ファイルから読込み */
		while ( ch != EOF )	{	/* ファイルからでも EOF は「入力終わり」*/
			putchar ( ch );		/* 結果は標準出力へ.. */
			ch = fgetc ( ifp );
		}
		fclose ( ifp );	/* 最後に、オープンできた場合はクローズする */
	}
	return 0;
}
$ ./sample-014.exe
/*
 * 2020/09/18 sample-014.c
 */
/*
 *  fopen の利用
 *
 * 利用方法
 *		コンパイル
 *			cc -Ic:\usr\c\include -o sample-014.exe sample-014.c
 *		実行
 *			sample-014
 */
#include <stdio.h>
/*
 *	main
 */
int main( int argc, char *argv[] )
{
	FILE	*ifp;		/* ファイルポインタ変数の宣言 */
	ifp = fopen ( "sample-014.c", "r" );
						/* sample-014.c を 読み出しモードで開く */
	if ( ifp == NULL ) {	/* Open に失敗した場合は.. */
		fprintf ( stderr, "ファイルのオープンに失敗しました。\n" );
						/* エラーメッセージを出力 */
		/* 後は何もしない(クローズもしない) */
	} else {				/* Open に成功した場合のみ利用してよい */
		int ch;
		ch = fgetc ( ifp );		/* fgetc で、ファイルから読込み */
		while ( ch != EOF )	{	/* ファイルからでも EOF は「入力終わり」*/
			putchar ( ch );		/* 結果は標準出力へ.. */
			ch = fgetc ( ifp );
		}
		fclose ( ifp );	/* 最後に、オープンできた場合はクローズする */
	}
	return 0;
}
$ 
Download : sample-015.c
/*
 * 2020/09/18 sample-015.c
 */
/*
 *  fopen の利用
 *
 * 利用方法
 *		コンパイル
 *			cc -Ic:\usr\c\include -o sample-015.exe sample-015.c
 *		実行
 *			sample-015
 */
#include <stdio.h>
/*
 *	main
 */
int main( int argc, char *argv[] )
{
	FILE	*ofp;		/* ファイルポインタ変数の宣言 */
	ofp = fopen ( "sample-015.txt", "w" );
			/* sample-015.txt を 読み出しモードで開く */
			/* 元々あった sample-015.txt の内容は上書きされる事に注意 */
	if ( ofp == NULL ) {	/* Open に失敗した場合は.. */
		fprintf ( stderr, "ファイルのオープンに失敗しました。\n" );
						/* エラーメッセージを出力 */
		/* 後は何もしない(クローズもしない) */
	} else {			/* Open に成功した場合のみ利用してよい */
		int ch;
		ch = getchar ();		/* キーボード入力 */
		while ( ch != EOF )	{
			fputc ( ch, ofp );		/* 結果はファイルへ.. */
			ch = getchar ();
		}
		fclose ( ofp );	/* 最後に、オープンできた場合はクローズする */
		/*
			結果は、画面でなく、sample-015.txt に保存される
		*/
	}
	return 0;
}
Fist Line Sencod Line Last Line
$ ./sample-015.exe < sample-015.in Fist Line Sencod Line Last Line $
#include <stdio.h>
int main(void) {
	printf ( "Hello, World\n" );
	return 0;
}
#include <stdio.h>
int main(void) {
	printf ( "Hello, World\n" );
	return 0;
}
#include <stdio.h>
int main(void) {
	printf ( "bdacada\n" );
	printf ( "dacada\n" );
	printf ( "acada\n" );
	printf ( "dada\n" );
	printf ( "ada\n" );
	printf ( "da\n" );
	printf ( "a\n" );
	return 0;
}
#include <stdio.h>
/* 関数定義
	関数名を利用して、関数を呼び出すと、
	関数の定義部分の命令「関数(の定義)本体」が実行されるようになる
 */
void hello(void) {
	printf ( "Hello, World\n" );
}
int main(void) {
	hello();		/* 関数呼び出し */
	hello();		/* 関数呼び出し */
	hello();		/* 関数呼び出し */
	return 0;
}
#include <stdio.h>
/*
	引数で指定された文字列を二度、表示する
*/
void print_two_times ( char *X ) {
	/* X : 関数の引数 : 仮引数変数 */
	printf ( X );	/* 一回目の出力 */
	printf ( X );	/* 二回目の出力 */
		/* 仮引数変数 X には、
			関数呼び出しの実引数の値が「代入」されている */
}
int main(void) {
	print_two_times ( "Hello, World\n" );
		/* 引数付き関数の呼び出し */
		/* 「"Hello, World\n"」を「実引数」 */
	print_two_times ( "こんにちわ、世界\n" );
	return 0;
}
/*
	引数付きの関数に対する関数呼び出しでは、
		関数の仮引数変数への関数呼び出しの実引数の値の代入が
		起きている
	プログラム内で、変数を利用する
		変数の値を後から決める事ができる
			-> 柔軟性や、汎用性が増す
			# 変数の値を決める(代入)必要がある
			#	関数の呼び出しが、その役割を担っている
	<<関数呼び出し>>
		代入の対象 : 仮引数変数
		代入値 : 実引数
		代入の命令 : 関数呼び出し (の機能の一部)
	<<代入>>
		代入の対象 : 変数
		代入値 : 式(で計算されたもの)
		代入の命令 : 代入文 ( 「=」を利用する )
			変数名 = 式;
				例 : x = 1 + 2;
					(x が整数型変数の時、変数 x に整数値 3 を代入 )
*/
#include <stdio.h>
#include "s_print.h"	/* ソフトウェア概論 A */
/*
	引数で指定された整数の値と、その次の整数の値を表示
		例 : 2 が指定されたら、2, 3 を出力する
*/
void print_n_n1 ( int n ) {
	s_print_int ( n );			/* 変数 n の(整数)値の出力 */
	s_print_string ( ", " );	/* 「, 」を出力 */
	s_print_int ( n + 1 );		/* 変数 n の(整数)値 + 1 の出力 */
	s_print_newline();			/* 改行を出力 */
}
int main(void) {
	print_n_n1 ( 2 );
	return 0;
}
#include <stdio.h>
#include "s_print.h"	/* ソフトウェア概論 A */
/*
	引数で指定された整数の値と、その次の整数の値を表示
		例 : 2 が指定されたら、2, 3 を出力する
*/
void print_n_n1 ( int n ) {
	s_print_int ( n );			/* 変数 n の(整数)値の出力 */
	s_print_string ( ", " );	/* 「, 」を出力 */
	n = n + 1;					/* 代入 */
								/* 現在の n の値に + 1 したものを */
								/* 変数 n に代入する */
	s_print_int ( n );			/* 変数 n の(整数)値 + 1 の出力 */
	s_print_newline();			/* 改行を出力 */
}
/*
	仮引数変数も変数なので、代入によって、変更する事ができる
		代入すると、(代入する前に、もっていた)変数の値が失われる
*/
int main(void) {
	print_n_n1 ( 2 );
	print_n_n1 ( 123 );
	return 0;
}
#include <stdio.h>
#include "s_print.h"	/* ソフトウェア概論 A */
/*
	引数で指定された整数の値と、その次の整数の値を表示
		例 : 2 が指定されたら、2, 3 を出力する
*/
void print_n_n1 ( int n ) {
	int n1;		/* 居所変数(自由に使えす変数を宣言) */
	s_print_int ( n );			/* 変数 n の(整数)値の出力 */
	s_print_string ( ", " );	/* 「, 」を出力 */
	n1 = n + 1;					/* 代入 */
								/* 現在の n の値に + 1 したものを */
								/* 変数 n に代入する */
	s_print_int ( n1 );			/* 変数 n の(整数)値 + 1 の出力 */
	s_print_newline();			/* 改行を出力 */
}
/*
	仮引数変数も変数なので、代入によって、変更する事ができる
		代入すると、(代入する前に、もっていた)変数の値が失われる
*/
int main(void) {
	print_n_n1 ( 2 );
	print_n_n1 ( 123 );
	return 0;
}
[起草] どんなプログラムを作成するかを頭の中で考えておく => 結果をあらかじめ想像しておく 例 : Hello, World 結果 : 画面に「Hello, World」+[改行] が表示される 編集 [エディタ] : ソース(Source) プログラムの作成 (*.c) 目的とする結果をもたらすように、 コンピュータへの指示を記述したもの ( プログラム ) を 「C 言語」で表現したものを作る => ソースファイル ( *.c ) + C 言語の知識 + テキストエディタの使い方 ( サクラエディタ ) 自分が望むプログラムをプログラミング言語(C 言語)で表現する => 「プログラムを書く」 # 自分が書いた(C 言語のソース)プログラムを、実行するためには、 # 準備が必要 (コンパイル言語固有 : インタープリタ言語にはない ) !! C 言語 ( のような人間が記述する事を想定した言語 ) の !! プログラム => 人間に都合がよい(操作しやすい) !! <= コンピュータには都合が悪い(効率が悪い) 翻訳(コンパイル) [コンパイラ] : オブジェクト(Object) プログラムの作成 (*.o) ソースを翻訳して、オブジェクトを作成する *.c -> *.o これを実行する命令 cc -c ソースファイル名 例 : cc -c p-001.c 「表現」に問題があれば、ここで確認(エラーになる)でき、 最初に戻って検討する 編集をしなおし、再度コンパイルする リンク [リンカ] : 実行ファイルの作成 (*.exe) オブジェクトとライブラリを結合して 実行ファイル(アプリファイル)を作成する 自分が作成したプログラム(本体)と、 それをサポートするライブラリ(部品)を組み合わせて 完成品(実行プログラム:実行ファイルに記録)を作る *.o -> *.exe これを実行する命令 cc -o 実行ファイル名 オブジェクトファイル名 例 : cc -o p-001.exe p-001.o 「部品の揃え方」に問題があれば、 ここで確認でき、最初に戻って検討する 考えなおし、編集してソースファイルを変更 コンパイルし、リンクを行う 実行 : 実行結果の確認 (実行結果:画面出力など) プログラムを実行し、その結果を見る事 *.exe -> 実行結果(結果表示)を得る これを実行する命令 ./実行ファイル名 例 : ./p-001.exe 適切な結果が得られなければ、最初に戻って検討する 最初に想像したものと同じ結果(表示)になっているかを確認する 確認実習 「Hello World」プログラムを作成、実行してみよう
課題プログラム内の「/*名前:ここ*/」の部分を書き換え「/*この部分を完成させなさい*/」の部分にプログラムを追加して、プログラムを完成させます。
Download : 20200918-01.c
/*
 * 課題 CNAME-01
 *
 * CDATE FILENAME
 *
 *	Hello, World (3 度目)
 */
#include <stdio.h>
/*
 *	main
 */
int main( int argc, char *argv[] )
{
	/*
	**	 この部分を完成させなさい
	*/
	return 0;
}
12.34
$ ./20200918-01-QQQQ.exe Hello, World $
Download : 20200918-02.c
/*
 * 課題 CNAME-02
 *
 * CDATE FILENAME
 *
 *	代入文
 *		整数型変数 ( a, b, c ) を三つ宣言する
 *		整数型変数 a, b にそれぞれ、123, 4 を代入する
 *		整数型変数 c に a と b の和を代入する
 *		整数型変数 c の値を画面に出力する
 */
#include <stdio.h>
#include "s_print.h"
/*
 *	main
 */
int main( int argc, char *argv[] )
{
	/* 整数型変数 a の宣言 */
	int	a;
	/* 整数型変数 b の宣言 */
	/*
	**	 この部分を完成させなさい
	*/
	/* 整数型変数 c の宣言 */
	int	c;
	/* 整数型変数 a に 123 を代入 */
	a = 123;
	/* 整数型変数 b に 4 を代入 */
	/*
	**	 この部分を完成させなさい
	*/
	/* 整数型変数 c に、変数 a と 変数 b の和を代入 */
	/*
	**	 この部分を完成させなさい
	*/
	/* 整数型変数 c の値を画面に出力 */
	s_print_string ( "変数 c の値は " );
	s_print_int ( c );
	s_print_string ( " です。\n" );
	return 0;
}
12.34
$ ./20200918-02-QQQQ.exe 変数 c の値は 127 です。 $
Download : 20200918-03.c
/*
 * 課題 CNAME-03
 *
 * 20200918 20200918-03-QQQQ.c
 *
 *	printf の書式指定
 *
 */
#include <stdio.h>
/*
 *
 */
/*
 *	main
 */
int main( int argc, char *argv[] )
{
	int ia = 7;
	int ib = 15;
	double da = 3.14;
	double db = 1.59;
	printf ( "/* o:ここ */ + /* o:ここ */ = /* o:ここ */\n", /* p:ここ */, /* q:ここ */, /* p:ここ */ + /* q:ここ */ );	/* 整数型の和 */
	printf ( "/* r:ここ */ / /* r:ここ */ = /* r:ここ */\n", /* s:ここ */, /* u:ここ */, /* s:ここ */ / /* u:ここ */ );	/* 浮動小数点数の商 */
	return 0;
}
abc123
$ ./20200918-03-QQQQ.exe 7 + 15 = 22 3.140000 / 1.590000 = 1.974843 $
Download : 20200918-04.c
/*
 * 課題 CNAME-04
 *
 * 20200918 20200918-04-QQQQ.c
 *
 *	scanf の書式指定
 *
 */
#include <stdio.h>
/*
 *
 */
/*
 *	main
 */
int main( int argc, char *argv[] )
{
	int i;		/* キーボードから入力された整数値を保持する整数型変数 */
	double d;	/* キーボードから入力された浮動小数点数値を保持する浮動小数点数型変数 */
	printf ( "整数値をキーボードから入力します : " );
	scanf ( "/* p:ここ */", /* q:ここ */ );
	printf ( "入力された整数値は %d でした。\n", i );
	printf ( "浮動小数点数値をキーボードから入力します : " );
	scanf ( "/* r:ここ */", /* s:ここ */ );
	printf ( "入力された浮動小数点数値は %f でした。\n", d );
	return 0;
}
123 456.789
$ ./20200918-04-QQQQ.exe 整数値をキーボードから入力します : 123 入力された整数値は 123 でした。 浮動小数点数値をキーボードから入力します : 456.789000 入力された浮動小数点数値は 456.789000 でした。 $