当日のOHP資料です。
Download : sample-001.c ( SJIS 版 )
/*
* 2013/07/12 sample-001.c
*/
/*
* 代入文
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-001.exe sample-001.c
* 実行
* sample-001
*/
#include <stdio.h>
#include "s_print.h"
/*
* main
*/
int main( double argc, char *argv[] )
{
int i = 123; /* 変数は、宣言と同時に値を指定できる (初期化) */
s_print_string ( "i の値は、現在 " );
s_print_int ( i ); /* 変数 i の値は、初期化された値 */
s_print_string ( " です。\n" );
s_print_string ( "i の値を、もう一度確認すると " );
s_print_int ( i ); /* 変数 i の値は、代入されない限り変化しない */
s_print_string ( " です。\n" );
i = 1 + 2 + 3; /* 代入によって変数の値は変更される */
s_print_string ( "i の値は、 " );
s_print_int ( i ); /* 変数 i の値は、最後に変更された結果 */
s_print_string ( " に変化しました。\n" );
return 0;
}
C:\usr\c>sample-001 i の値は、現在 123 です。 i の値を、もう一度確認すると 123 です。 i の値は、 6 に変化しました。 C:\usr\c>
Download : sample-002.c ( SJIS 版 )
/*
* 2013/07/12 sample-002.c
*/
/*
* 代入文 ( 変数の値の更新 )
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-002.exe sample-002.c
* 実行
* sample-002
*/
#include <stdio.h>
#include "s_print.h"
/*
* main
*/
int main( double argc, char *argv[] )
{
int i = 987; /* 変数は、宣言と同時に値を指定できる (初期化) */
s_print_string ( "i の値は、現在 " );
s_print_int ( i ); /* 変数 i の値は、初期化された値 */
s_print_string ( " です。\n" );
i = i + 1; /* 代入文の右辺(式)には、「代入される変数自身」を含める事ができる。
* その時の変数の値は、代入前の変数の値となる。
* 代入前 i の値は 「987」 なので、
* 右辺(式)の値は 「987 + 1」の「988」となる。
*/
s_print_string ( "i の値は、現在 " );
s_print_int ( i ); /* 変数 i の値は、最後に代入された「988」 */
s_print_string ( " です。\n" );
i = i + 1; /* 今度は、「988 + 1」、すなわち「989」が代入される。
* 変数を、変数自身の現在の値を利用した式を代入する事によって、
* 「変数の値の更新」をする事ができる。
*/
s_print_string ( "i の値は、現在 " );
s_print_int ( i ); /* 変数 i の値は、最後に代入された「989」 */
s_print_string ( " です。\n" );
i++; /* 「i 自身を 1 増やす」という「更新」は良く行うので、
* C 言語では、省略型が用意されている。
* 「i++」は、とりあえず、「i = i + 1」と同じと考えてよい
* だから、この結果 i は 「990」になる
*/
s_print_string ( "i の値は、最後に " );
s_print_int ( i ); /* 変数 i の値は、最後に代入された「990」 */
s_print_string ( " となりました。\n" );
return 0;
}
C:\usr\c>sample-002 i の値は、現在 987 です。 i の値は、現在 988 です。 i の値は、現在 989 です。 i の値は、最後に 990 となりました。 C:\usr\c>
Download : sample-003.c ( SJIS 版 )
/*
* 2013/07/12 sample-003.c
*/
/*
* 代入文 (計算結果の蓄積)
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-003.exe sample-003.c
* 実行
* sample-003
*/
#include <stdio.h>
#include "s_print.h"
#include "s_input.h"
/*
* sum_print
* 「sum の値は QQQQ です。」と出力する。QQQQ は現在の sum の値
*/
void sum_print ( int sum ) {
s_print_string ( "sum の値は " );
s_print_int ( sum );
s_print_string ( " です。\n" );
}
/*
* main
*
* 三つの整数値を入力し、その総和を計算して表示する。
*/
int main( double argc, char *argv[] )
{
int sum = 0; /* 「最初」は、(一つも入力されていないので..) 総和は 0 */
/*
*
*/
sum_print ( sum ); /* 0 が入っているので 0 が出力される */
/*
*
*/
s_print_string ( "一つ目の整数値を入力してください : " );
sum = sum + s_input_int();
/*
* sum の元の値と、新に入力された値の和が sum に入る。
* 元々、sum には 0 が入っていたので、結局、最初に入力した整数値になる。
*/
sum_print ( sum ); /* 最初に入力した整数値になる */
/*
*
*/
s_print_string ( "二つ目の整数値を入力してください : " );
sum = sum + s_input_int();
/*
* sum の元の値と、新に入力された値の和が sum に入る。
* 元々、sum には、一つ目の整数が入っているので、二つの整数の和になる。
*/
sum_print ( sum ); /* 二つの整数の和が表示される */
/*
*
*/
s_print_string ( "三つ目の整数値を入力してください : " );
sum += s_input_int(); /* 「s += x」は、「 s = s + (x)」の省略型 */
/*
* sum の元の値と、新に入力された値の和が sum に入る。
* 元々、sum には、二つの整数の和が入っているので、結果は三つの整数の和
*/
sum_print ( sum ); /* 三つの整数の和が表示される */
return 0;
}
34 98 111
C:\usr\c>sample-003 sum の値は 0 です。 一つ目の整数値を入力してください : 34 sum の値は 34 です。 二つ目の整数値を入力してください : 98 sum の値は 132 です。 三つ目の整数値を入力してください : 111 sum の値は 243 です。 C:\usr\c>
Download : sample-004.c ( SJIS 版 )
/*
* 2013/07/12 sample-004.c
*/
/*
* 代入文 (計算結果の蓄積)
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-004.exe sample-004.c
* 実行
* sample-004
*/
#include <stdio.h>
#include "s_print.h"
#include "s_input.h"
/*
* sum_print
* 「sum の値は QQQQ です。」と出力する。QQQQ は現在の sum の値
*/
void sum_print ( int sum ) {
s_print_string ( "sum の値は " );
s_print_int ( sum );
s_print_string ( " です。\n" );
}
/*
* input_nth_numner
* 「QQQQ 番目の数値を入力してください」と出力し、整数値を入力して返す。
*/
int input_nth_numner ( int i ) {
/*
* プロンプト(入力促進メッセージ)を出力し..
*/
s_print_int ( i );
s_print_string ( " 番目の整数値を入力してください : " );
return s_input_int(); /* 整数を入力し、その結果を値として返す */
}
/*
* main
*
* 三つの整数値を入力し、その総和を計算して表示する。
*/
int main( double argc, char *argv[] )
{
int sum = 0; /* 「最初」の「総和」は、0 */
int i = 1; /* 「最初」の「入力」は、1 番目 */
/*
*
*/
sum_print ( sum ); /* 0 が入っているので 0 が出力される */
/*
* 一つ目
*/
sum += input_nth_numner ( i );
sum_print ( sum );
i++;
/*
* 二つ目
*/
sum += input_nth_numner ( i );
sum_print ( sum );
i++;
/*
* 三つ目
*/
sum += input_nth_numner ( i );
sum_print ( sum );
i++; /* この最後の i++ は不要だが .. */
return 0;
}
34 98 111
C:\usr\c>sample-004 sum の値は 0 です。 1 番目の整数値を入力してください : 34 sum の値は 34 です。 2 番目の整数値を入力してください : 98 sum の値は 132 です。 3 番目の整数値を入力してください : 111 sum の値は 243 です。 C:\usr\c>
Download : sample-005.c ( SJIS 版 )
/*
* 2013/07/12 sample-005.c
*/
/*
* 代入文 (計算結果の蓄積)
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-005.exe sample-005.c
* 実行
* sample-005
*/
#include <stdio.h>
#include "s_print.h"
/*
* sum_print
* 「sum の値は QQQQ です。」と出力する。QQQQ は現在の sum の値
*/
void sum_print ( int sum ) {
s_print_string ( "sum の値は " );
s_print_int ( sum );
s_print_string ( " です。\n" );
}
/*
* main
*
* 1 から 5 までの数の和を出力する
*/
int main( double argc, char *argv[] )
{
/*
*
*/
s_print_string ( "1 から 5 までの和は " );
s_print_int ( 1 + 2 + 3 + 4 + 5 );
s_print_string ( " です。\n" );
/*
*
*/
return 0;
}
C:\usr\c>sample-005 1 から 5 までの和は 15 です。 C:\usr\c>
Download : sample-006.c ( SJIS 版 )
/*
* 2013/07/12 sample-006.c
*/
/*
* 代入文 (計算結果の蓄積)
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-006.exe sample-006.c
* 実行
* sample-006
*/
#include <stdio.h>
#include "s_print.h"
/*
* main
*
* 1 から 5 までの数の和を出力する
*/
int main( double argc, char *argv[] )
{
int sum = 1 + 2 + 3 + 4 + 5; /* 変数を利用する */
/*
*
*/
s_print_string ( "1 から 5 までの和は " );
s_print_int ( sum );
s_print_string ( " です。\n" );
/*
*
*/
return 0;
}
C:\usr\c>sample-006 1 から 5 までの和は 15 です。 C:\usr\c>
Download : sample-007.c ( SJIS 版 )
/*
* 2013/07/12 sample-007.c
*/
/*
* 代入文 (計算結果の蓄積)
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-007.exe sample-007.c
* 実行
* sample-007
*/
#include <stdio.h>
#include "s_print.h"
/*
* main
*
* 1 から 5 までの数の和を出力する
*/
int main( double argc, char *argv[] )
{
int sum = 0; /* 最初に 0 にし.. */
/*
*
*/
sum += 1; /* まず、 1 を加え.. */
sum += 2; /* 次に、 2 を加え.. */
sum += 3; /* 更に、 3 を加え.. */
sum += 4; /* 又々、 4 を加え.. */
sum += 5; /* 終に、 5 を加え.. */
/*
*
*/
s_print_string ( "1 から 5 までの和は " );
s_print_int ( sum );
s_print_string ( " です。\n" );
/*
*
*/
return 0;
}
C:\usr\c>sample-007 1 から 5 までの和は 15 です。 C:\usr\c>
Download : sample-008.c ( SJIS 版 )
/*
* 2013/07/12 sample-008.c
*/
/*
* 代入文 (計算結果の蓄積)
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-008.exe sample-008.c
* 実行
* sample-008
*/
#include <stdio.h>
#include "s_print.h"
/*
* main
*
* 1 から 5 までの数の和を出力する
*/
int main( double argc, char *argv[] )
{
int sum = 0; /* 最初に 0 にし.. */
int i = 1; /* 最初に加えるのは 1 なので.. */
int n = 5; /* 最後は 5 なので.. */
/*
*
*/
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
/*
* ここから先は i が 6 になっているので、実行されない
*/
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
/*
*
*/
s_print_string ( "1 から " );
s_print_int ( n );
s_print_string ( " までの和は " );
s_print_int ( sum );
s_print_string ( " です。\n" );
/*
*
*/
return 0;
}
C:\usr\c>sample-008 1 から 5 までの和は 15 です。 C:\usr\c>
Download : sample-009.c ( SJIS 版 )
/*
* 2013/07/12 sample-009.c
*/
/*
* 代入文 (計算結果の蓄積)
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-009.exe sample-009.c
* 実行
* sample-009
*/
#include <stdio.h>
#include "s_print.h"
#include "s_input.h"
/*
* main
*
* 1 から、n ( 一桁の自然数 ) までの数の和を出力する
*/
int main( double argc, char *argv[] )
{
int sum = 0; /* 最初に 0 にし.. */
int i = 1; /* 最初に加えるのは 1 なので.. */
int n;
/*
*
*/
s_print_string ( " 一桁の自然数を入力してください : " );
n = s_input_int(); /* n の値を入力 */
/*
*
*/
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
/*
*
*/
s_print_string ( "1 から " );
s_print_int ( n );
s_print_string ( " までの和は " );
s_print_int ( sum );
s_print_string ( " です。\n" );
/*
*
*/
return 0;
}
7
C:\usr\c>sample-009 一桁の自然数を入力してください : 7 1 から 7 までの和は 28 です。 C:\usr\c>
Download : sample-010.c ( SJIS 版 )
/*
* 2013/07/12 sample-010.c
*/
/*
* 代入文 (計算結果の蓄積)
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-010.exe sample-010.c
* 実行
* sample-010
*/
#include <stdio.h>
#include "s_print.h"
#include "s_input.h"
/*
* main
*
* 1 から、n ( 任意の自然数 ) までの数の和を出力する
*/
int main( double argc, char *argv[] )
{
int sum = 0; /* 最初に 0 にし.. */
int i = 1; /* 最初に加えるのは 1 なので.. */
int n;
/*
*
*/
s_print_string ( "自然数を入力してください : " );
n = s_input_int(); /* n の値を入力 */
/*
*
*/
while ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
/*
*
*/
s_print_string ( "1 から " );
s_print_int ( n );
s_print_string ( " までの和は " );
s_print_int ( sum );
s_print_string ( " です。\n" );
/*
*
*/
return 0;
}
7
C:\usr\c>sample-010 自然数を入力してください : 7 1 から 7 までの和は 28 です。 C:\usr\c>
Download : sample-011.c ( SJIS 版 )
/*
* 2013/07/12 sample-011.c
*/
/*
* while 文
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-011.exe sample-011.c
* 実行
* sample-011
*/
#include <stdio.h>
#include "s_print.h"
#include "s_input.h"
/*
* input_nth_numner
* 「QQQQ 番目の数値を入力してください」と出力し、整数値を入力して返す。
*/
int input_nth_numner ( int i ) {
/*
* プロンプト(入力促進メッセージ)を出力し..
*/
s_print_int ( i );
s_print_string ( " 番目の整数値を入力してください : " );
return s_input_int(); /* 整数を入力し、その結果を値として返す */
}
/*
* main
*
* n ( 任意の自然数 ) の整数の和を計算する
*/
int main( double argc, char *argv[] )
{
int sum = 0; /* 最初に 0 にし.. */
int i = 1; /* 最初に加えるのは 1 なので.. */
int n;
/*
*
*/
s_print_string ( "自然数を入力してください : " );
n = s_input_int(); /* n の値を入力 */
/*
*
*/
while ( i <= n ) { /* i が n 以下の時は.. */
sum += input_nth_numner ( i );
i++;
}
/*
*
*/
s_print_int ( n );
s_print_string ( " 個の整数の和は " );
s_print_int ( sum );
s_print_string ( " です。\n" );
/*
*
*/
return 0;
}
5 123 456 78 901 23
C:\usr\c>sample-011 自然数を入力してください : 5 1 番目の整数値を入力してください : 123 2 番目の整数値を入力してください : 456 3 番目の整数値を入力してください : 78 4 番目の整数値を入力してください : 901 5 番目の整数値を入力してください : 23 5 個の整数の和は 1581 です。 C:\usr\c>
Download : sample-012.c ( SJIS 版 )
/*
* 2013/07/12 sample-012.c
*/
/*
* while 文 ( n 回の繰返し )
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-012.exe sample-012.c
* 実行
* sample-012
*/
#include <stdio.h>
#include "s_print.h"
#include "s_input.h"
/*
* main
*
* 0 から n - 1 までの数を出力する。
*/
int main( double argc, char *argv[] )
{
int i;
int n;
/*
*
*/
s_print_string ( "自然数を入力してください : " );
n = s_input_int(); /* n の値を入力 */
/*
*
*/
i = 0;
while ( i < n ) { /* i が n 未満の時は.. */
s_print_int ( i ); /* i を出力し.. */
s_print_char ( ' ' ); /* 間を空ける */
i++;
}
s_print_newline(); /* 最後に改行 */
/*
*
*/
return 0;
}
5
C:\usr\c>sample-012 自然数を入力してください : 5 0 1 2 3 4 C:\usr\c>
Download : sample-013.c ( SJIS 版 )
/*
* 2013/07/12 sample-013.c
*/
/*
* while 文 ( n 回の繰返し )
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-013.exe sample-013.c
* 実行
* sample-013
*/
#include <stdio.h>
#include "s_print.h"
#include "s_input.h"
/*
* main
*
* n 個の '*' を出力する
*/
int main( double argc, char *argv[] )
{
int i;
int n;
/*
*
*/
s_print_string ( "自然数を入力してください : " );
n = s_input_int(); /* n の値を入力 */
/*
*
*/
i = 0;
while ( i < n ) { /* i が n 未満の時は.. */
s_print_char ( '*' ); /* '*' を書く */
i++;
}
s_print_newline(); /* 最後に改行 */
/*
*
*/
return 0;
}
5
C:\usr\c>sample-013 自然数を入力してください : 5 ***** C:\usr\c>
Download : sample-014.c ( SJIS 版 )
/*
* 2013/07/12 sample-014.c
*/
/*
* while 文 ( n 回の繰返し )
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-014.exe sample-014.c
* 実行
* sample-014
*/
#include <stdio.h>
#include "s_print.h"
#include "s_input.h"
/*
* main
*
* サイズ n - 1 個の三角形を出力する
*/
int main( double argc, char *argv[] )
{
int i;
int n;
/*
*
*/
s_print_string ( "自然数を入力してください : " );
n = s_input_int(); /* n の値を入力 */
/*
*
*/
i = 0;
while ( i < n ) { /* i が n 未満の時は.. */
int j = 0;
while ( j < i ) { /* j が i 未満の時は.. */
s_print_char ( '*' );
j++;
}
s_print_newline(); /* 最後に改行 */
i++;
}
/*
*
*/
return 0;
}
5
C:\usr\c>sample-014 自然数を入力してください : 5 * ** *** **** C:\usr\c>
Download : sample-015.c ( SJIS 版 )
/*
* 2013/07/12 sample-015.c
*/
/*
* while 文 と再帰
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-015.exe sample-015.c
* 実行
* sample-015
*/
#include <stdio.h>
#include "s_print.h"
#include "s_input.h"
/*
* while_func ( int i, int n )
*
* n - 1 個の '*' を出力する
*/
void while_func ( int i, int n ) {
/*
while ( i < n ) {
s_print_char ( '*' );
i++;
}
*/
if ( i < n ) { /* while → if */
s_print_char ( '*' ); /* 同じ */
i++; /* 同じ */
while_func ( i, n ); /* 再帰 */
}
/* 空っぽの else は省略可能 */
/* else {} */
}
/*
* while_func_2 ( int i )
*
* n 個の '*' を出力する
*/
/*
* main
*
* n 個の '*' を出力する
*/
int main( double argc, char *argv[] )
{
int i;
int n;
/*
*
*/
s_print_string ( "自然数を入力してください : " );
n = s_input_int(); /* n の値を入力 */
/*
*
*/
/*
i = 0;
while ( i < n ) {
s_print_char ( '*' );
i++;
}
*/
/* while 文と同等な関数を再帰で作成する */
while_func ( 0, n ); /* 引数の 0 は、代入文 「i = 0」に相当 */
s_print_newline(); /* 最後に改行 */
/*
*
*/
return 0;
}
5
C:\usr\c>sample-015 自然数を入力してください : 5 ***** C:\usr\c>
Download : sample-016.c ( SJIS 版 )
/*
* 2013/07/12 sample-016.c
*/
/*
* while 文 と再帰
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-016.exe sample-016.c
* 実行
* sample-016
*/
#include <stdio.h>
#include "s_print.h"
#include "s_input.h"
/*
* while_func ( int i, int n )
*
* n - 1 個の '*' を出力する
*/
void while_func ( int j, int i ) {
/*
while ( j < i ) {
s_print_char ( '*' );
j++;
}
*/
if ( j < i ) { /* while → if */
s_print_char ( '*' ); /* 同じ */
j++; /* 同じ */
while_func ( j, i ); /* 再帰 */
}
/* 空っぽの else は省略可能 */
/* else {} */
}
/*
* while_func_2 ( int i, int n )
*/
void while_func_2 ( int i, int n ) {
/*
while ( i < n ) {
i++;
while_func ( 0, i );
s_print_newline();
}
*/
if ( i < n ) { /* while → if */
while_func ( 0, i );
s_print_newline();
i++; /* 同じ */
while_func_2 ( i, n ); /* 再帰 */
}
/* 空っぽの else は省略可能 */
/* else {} */
}
/*
* main
*
* サイズ n - 1 個の三角形を出力する
*/
int main( double argc, char *argv[] )
{
int i;
int n;
/*
*
*/
s_print_string ( "自然数を入力してください : " );
n = s_input_int(); /* n の値を入力 */
/*
*
*/
while_func_2 ( 0, n );
/*
*
*/
return 0;
}
5
C:\usr\c>sample-016 自然数を入力してください : 5 * ** *** **** C:\usr\c>
#include <stdio.h>
#include "s_print.h"
void function ( int variable ) {
s_print_string ( "変数 variable の値は " );
s_print_int ( variable ); /* 引数で指定された値 */
/* 変数 variable の値は、事前にはわからない */
s_print_string ( "です。\n" );
/* ただし、関数の中では、同じ値になっている */
/* もう一度、参照しても、同じ結果になる */
s_print_string ( "変数 variable の値は " );
s_print_int ( variable ); /* 一回目と同じ値 */
/* 変数 variable の値は、事前にはわからない */
s_print_string ( "です。\n" );
}
int main(int argc, char *argv[] ) {
function ( 100 ); /*関数呼出しで引数に 100 と指定すると*/
function ( 200 ); /* 関数の引数変数 variable に 100 が*/
function ( 999 ); /* 入る */
}
#include <stdio.h>
#include "s_print.h"
void function ( int variable ) {
s_print_string ( "変数 variable の値は " );
s_print_int ( variable ); /* 引数で指定された値 */
/* 変数 variable の値は、事前にはわからない */
s_print_string ( "です。\n" );
/* ただし、関数の中では、同じ値になっている */
variable = 100 * 100; /* 代入すると、値が変更できる */
/* 代入によって、以前の値は失われる */
/* もう一度、参照しても、同じ結果になる */
s_print_string ( "変数 variable の値は " );
s_print_int ( variable ); /* 今度は一回目とは違うかも */
/* かならず 10000(代入した値) になる */
/* 変数 variable の値は、事前にはわからない */
s_print_string ( "です。\n" );
}
int main(int argc, char *argv[] ) {
function ( 100 ); /*関数呼出しで引数に 100 と指定すると*/
function ( 200 ); /* 関数の引数変数 variable に 100 が*/
function ( 999 ); /* 入る */
}
/*
* 2013/07/12 sample-001.c
*/
/*
* 代入文
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-001.exe sample-001.c
* 実行
* sample-001
*/
#include <stdio.h>
#include "s_print.h"
/*
* main
*/
int main( double argc, char *argv[] )
{
int i = 123; /* 変数は、宣言と同時に値を指定できる (初期化) */
s_print_string ( "i の値は、現在 " );
s_print_int ( i ); /* 変数 i の値は、初期化された値 */
s_print_string ( " です。\n" );
s_print_string ( "i の値を、もう一度確認すると " );
s_print_int ( i ); /* 変数 i の値は、代入されない限り変化しない */
s_print_string ( " です。\n" );
i = 1 + 2 + 3; /* 代入によって変数の値は変更される */
s_print_string ( "i の値は、 " );
s_print_int ( i ); /* 変数 i の値は、最後に変更された結果 */
s_print_string ( " に変化しました。\n" );
return 0;
}
/*
* 2013/07/12 sample-002.c
*/
/*
* 代入文 ( 変数の値の更新 )
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-002.exe sample-002.c
* 実行
* sample-002
*/
#include <stdio.h>
#include "s_print.h"
/*
* main
*/
int main( double argc, char *argv[] )
{
int i = 987; /* 変数は、宣言と同時に値を指定できる (初期化) */
s_print_string ( "i の値は、現在 " );
s_print_int ( i ); /* 変数 i の値は、初期化された値 */
s_print_string ( " です。\n" );
i = i + 1; /* 代入文の右辺(式)には、「代入される変数自身」を含める事ができる。
* その時の変数の値は、代入前の変数の値となる。
* 代入前 i の値は 「987」 なので、
* 右辺(式)の値は 「987 + 1」の「988」となる。
*/
/*
i = i + 1;
↓
i = 987 + 1; 987 は i の代入前の値
↓
i = 988; 代入後は、i の値は、988 である
*/
s_print_string ( "i の値は、現在 " );
s_print_int ( i ); /* 変数 i の値は、最後に代入された「988」 */
s_print_string ( " です。\n" );
i = i + 1; /* 今度は、「988 + 1」、すなわち「989」が代入される。
* 変数を、変数自身の現在の値を利用した式を代入する事によって、
* 「変数の値の更新」をする事ができる。
*/
s_print_string ( "i の値は、現在 " );
s_print_int ( i ); /* 変数 i の値は、最後に代入された「989」 */
s_print_string ( " です。\n" );
i++; /* 「i 自身の値を 1 増やす」という「更新」は良く行うので、
* C 言語では、省略型が用意されている。
* 「i++」は、とりあえず、「i = i + 1」と同じと考えてよい
* だから、この結果 i は 「990」になる
*/
s_print_string ( "i の値は、最後に " );
s_print_int ( i ); /* 変数 i の値は、最後に代入された「990」 */
s_print_string ( " となりました。\n" );
return 0;
}
/*
* 2013/07/12 sample-003.c
*/
/*
* 代入文 (計算結果の蓄積)
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-003.exe sample-003.c
* 実行
* sample-003
*/
#include <stdio.h>
#include "s_print.h"
#include "s_input.h"
/*
* sum_print
* 「sum の値は QQQQ です。」と出力する。QQQQ は現在の sum の値
*/
void sum_print ( int sum ) {
s_print_string ( "sum の値は " );
s_print_int ( sum );
s_print_string ( " です。\n" );
}
/*
* main
*
* 三つの整数値を入力し、その総和を計算して表示する。
*/
int main( double argc, char *argv[] )
{
int sum = 0; /* 「最初」は、(一つも入力されていないので..) 総和は 0 */
/*
*
*/
sum_print ( sum ); /* 0 が入っているので 0 が出力される */
/*
*
*/
s_print_string ( "一つ目の整数値を入力してください : " );
sum = sum + s_input_int();
/*
* sum の元の値と、新に入力された値の和が sum に入る。
* 元々、sum には 0 が入っていたので、結局、最初に入力した整数値になる。
*/
sum_print ( sum ); /* 最初に入力した整数値になる */
/*
*
*/
s_print_string ( "二つ目の整数値を入力してください : " );
sum = sum + s_input_int();
/*
* sum の元の値と、新に入力された値の和が sum に入る。
* 元々、sum には、一つ目の整数が入っているので、二つの整数の和になる。
*/
sum_print ( sum ); /* 二つの整数の和が表示される */
/*
*
*/
s_print_string ( "三つ目の整数値を入力してください : " );
sum += s_input_int(); /* 「s += x」は、「 s = s + (x)」の省略型 */
/* i = i + 1 → i += 1 → i++ */
/* より一般に V = V op X → V op= X とかける事が多い */
/* 例 op が +, -, *, / の時もつかえる.. */
/*
* sum の元の値と、新に入力された値の和が sum に入る。
* 元々、sum には、二つの整数の和が入っているので、結果は三つの整数の和
*/
sum_print ( sum ); /* 三つの整数の和が表示される */
return 0;
}
/*
* 2013/07/12 sample-003.c
*/
/*
* 代入文 (計算結果の蓄積)
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-003.exe sample-003.c
* 実行
* sample-003
*/
#include <stdio.h>
#include "s_print.h"
#include "s_input.h"
/*
* sum_print
* 「sum の値は QQQQ です。」と出力する。QQQQ は現在の sum の値
*/
void sum_print ( int sum ) {
s_print_string ( "sum の値は " );
s_print_int ( sum );
s_print_string ( " です。\n" );
}
/*
* main
*
* 三つの整数値を入力し、その総和を計算して表示する。
*/
int main( double argc, char *argv[] )
{
int sum = 0; /* 「最初」は、(一つも入力されていないので..) 総和は 0 */
int n1; /* 一つ目の入力された値 */
int n2; /* 二つ目の入力された値 */
int n3; /* 三つ目の入力された値 */
s_print_string ( "一つ目の整数値を入力してください : " );
n1 = s_input_int();
s_print_string ( "二つ目の整数値を入力してください : " );
n2 = s_input_int();
s_print_string ( "三つ目の整数値を入力してください : " );
n3 = s_input_int();
sum = n1 + n2 + n3;
sum_print ( sum ); /* 三つの整数の和が表示される */
return 0;
}
/*
* 2013/07/12 sample-004.c
*/
/*
* 代入文 (計算結果の蓄積)
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-004.exe sample-004.c
* 実行
* sample-004
*/
#include <stdio.h>
#include "s_print.h"
#include "s_input.h"
/*
* sum_print
* 「sum の値は QQQQ です。」と出力する。QQQQ は現在の sum の値
*/
void sum_print ( int sum ) {
s_print_string ( "sum の値は " );
s_print_int ( sum );
s_print_string ( " です。\n" );
}
/*
* input_nth_numner
* 「QQQQ 番目の数値を入力してください」と出力し、整数値を入力して返す。
*/
int input_nth_numner ( int i ) {
/*
* プロンプト(入力促進メッセージ)を出力し..
*/
s_print_int ( i );
s_print_string ( " 番目の整数値を入力してください : " );
return s_input_int(); /* 整数を入力し、その結果を値として返す */
}
/*
* main
*
* 三つの整数値を入力し、その総和を計算して表示する。
*/
int main( double argc, char *argv[] )
{
int sum = 0; /* 「最初」の「総和」は、0 */
int i = 1; /* 「最初」の「入力」は、1 番目 */
/*
*
*/
sum_print ( sum ); /* 0 が入っているので 0 が出力される */
/*
* 一つ目
*/
sum += input_nth_numner ( i );
sum_print ( sum );
i++;
/*
* 二つ目
*/
sum += input_nth_numner ( i );
sum_print ( sum );
i++;
/*
* 三つ目
*/
sum += input_nth_numner ( i );
sum_print ( sum );
i++; /* この最後の i++ は不要だが .. */
return 0;
}
/*
* 2013/07/12 sample-007.c
*/
/*
* 代入文 (計算結果の蓄積)
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-007.exe sample-007.c
* 実行
* sample-007
*/
#include <stdio.h>
#include "s_print.h"
/*
* main
*
* 1 から 5 までの数の和を出力する
*/
int main( double argc, char *argv[] )
{
int sum = 0; /* 最初に 0 にし.. */
/* ここでは sum は 0 だった */
sum += 1; /* まず、 1 を加え.. */
/* sum += 1 → sum = sum + (1) → sum = 0 + 1 = 1 */
sum += 2; /* 次に、 2 を加え.. */
/* sum = 0 + 1 + 2 = 1 + 2 */
sum += 3; /* 更に、 3 を加え.. */
/* sum = 1 + 2 + 3 */
sum += 4; /* 又々、 4 を加え.. */
/* sum = 1 + 2 + 3 + 4 */
sum += 5; /* 終に、 5 を加え.. */
/* sum = 1 + 2 + 3 + 4 + 5*/
/*
*
*/
s_print_string ( "1 から 5 までの和は " );
s_print_int ( sum );
s_print_string ( " です。\n" );
/*
*
*/
return 0;
}
/*
* 2013/07/12 sample-007.c
*/
/*
* 代入文 (計算結果の蓄積)
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-007.exe sample-007.c
* 実行
* sample-007
*/
#include <stdio.h>
#include "s_print.h"
/*
* main
*
* 1 から 5 までの数の和を出力する
*/
int main( double argc, char *argv[] )
{
int sum = 0; /* 最初に 0 にし.. */
int i = 1; /* 加える数は最初は 1 */
sum += i; /* まず、 1 を加え.. */
i++; /* i++ → i = i + 1 → i = 1 + 1 = 2 */
sum += i; /* 次に、 2 を加え.. */
i++;
sum += i; /* 更に、 3 を加え.. */
i++;
sum += i; /* 又々、 4 を加え.. */
i++;
sum += i; /* 終に、 5 を加え.. */
i++;
/*
* sum += 1 と sum += 2 の違いは、1 と 2 の違い
* 違う 1 と 2 を変数 i に置き換える
*
* sum += 1 → i = 1 ; sum += i;
* sum += 2 → i = 2 ; sum += i;
* i=1;
* sum += 1 → sum += i; i++;
* sum += 2 → sum += i; i++; 同じ形になった
*/
/*
*
*/
s_print_string ( "1 から 5 までの和は " );
s_print_int ( sum );
s_print_string ( " です。\n" );
/*
*
*/
return 0;
}
/*
* 2013/07/12 sample-008.c
*/
/*
* 代入文 (計算結果の蓄積)
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-008.exe sample-008.c
* 実行
* sample-008
*/
#include <stdio.h>
#include "s_print.h"
/*
* main
*
* 1 から 5 までの数の和を出力する
*/
int main( double argc, char *argv[] )
{
int sum = 0; /* 最初に 0 にし.. */
int i = 1; /* 最初に加えるのは 1 なので.. */
int n = 5; /* 最後は 5 なので.. */
/*
*
*/
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
} /* sum += 1 */
/*
if ( 1 <= 5 ) {
sum += 1;
i++;
}
↓
sum += 1;
i++; i ← 2 を代入
*/
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
} /* sum += 2 */
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
} /* sum += 3 */
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
} /* sum += 4 */
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
} /* sum += 5 */
/*
* ここから先は i が 6 になっているので、実行されない
*/
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
} /* なにもしない.. なぜなら i は 6 */
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
/*
*
*/
s_print_string ( "1 から " );
s_print_int ( n );
s_print_string ( " までの和は " );
s_print_int ( sum );
s_print_string ( " です。\n" );
/*
*
*/
return 0;
}
/*
* 2013/07/12 sample-009.c
*/
/*
* 代入文 (計算結果の蓄積)
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-009.exe sample-009.c
* 実行
* sample-009
*/
#include <stdio.h>
#include "s_print.h"
#include "s_input.h"
/*
* main
*
* 1 から、n ( 一桁の自然数 ) までの数の和を出力する
*/
int main( double argc, char *argv[] )
{
int sum = 0; /* 最初に 0 にし.. */
int i = 1; /* 最初に加えるのは 1 なので.. */
int n;
/*
*
*/
s_print_string ( " 一桁の自然数を入力してください : " );
n = s_input_int(); /* n の値を入力 */
/* n には 1 から 9 が入る */
/*
*
*/
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
if ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
/*
*
*/
s_print_string ( "1 から " );
s_print_int ( n );
s_print_string ( " までの和は " );
s_print_int ( sum );
s_print_string ( " です。\n" );
/*
*
*/
return 0;
}
/*
* 2013/07/12 sample-009.c
*/
/*
* 代入文 (計算結果の蓄積)
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-009.exe sample-009.c
* 実行
* sample-009
*/
#include <stdio.h>
#include "s_print.h"
#include "s_input.h"
/*
* main
*
* 1 から、n ( 一桁の自然数 ) までの数の和を出力する
*/
int main( double argc, char *argv[] )
{
int sum = 0; /* 最初に 0 にし.. */
int i = 1; /* 最初に加えるのは 1 なので.. */
int n;
/*
*
*/
s_print_string ( " 一桁の自然数を入力してください : " );
n = s_input_int(); /* n の値を入力 */
/* n には 1 から 9 が入る */
/*
* if → while : 任意の n に関して、階和の計算
*/
while ( i <= n ) { /* i が n 以下の時は.. */
sum += i; /* i の現在の値を加えたら */
i++; /* i の値を更新し.. */
}
/*
*
*/
s_print_string ( "1 から " );
s_print_int ( n );
s_print_string ( " までの和は " );
s_print_int ( sum );
s_print_string ( " です。\n" );
/*
*
*/
return 0;
}
/*
* 2013/07/12 sample-010.c
*/
/*
* 代入文 (計算結果の蓄積)
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o sample-010.exe sample-010.c
* 実行
* sample-010
*/
#include <stdio.h>
#include "s_print.h"
#include "s_input.h"
/*
* main
*
* 1 から、n ( 任意の自然数 ) までの数の和を出力する
*/
int main( double argc, char *argv[] )
{
int sum = 0; /* 最初に 0 にし.. */
int i = 1; /* 最初に加えるのは 1 なので.. */
int n;
/*
*
*/
s_print_string ( "自然数を入力してください : " );
n = s_input_int(); /* n の値を入力 */
/*
* sum ← 0
* i ← 1
* n ← 仮に 3 が入っている物と考える
*/
while ( i <= n ) { /* i が n 以下の時は.. */
/* [1回目] i が 1 で、 n が 3 なので、条件が成立 */
/* [2回目] i が 2 で、 n が 3 なので、条件が成立 */
/* [3回目] i が 3 で、 n が 3 なので、条件が成立 */
/* [4回目] i が 4 で、 n が 3 なので、条件が不成立 */
sum += i; /* i の現在の値を加えたら */
/* [1回目] sum に i を加える
sum は 0 で、 i は 1 なので、
sum には、0+1=1 が入る
*/
/* [2 回目] sum に i を加える
sum は 1 で、 i は 2 なので、
sum には、1+2=3 が入る
*/
/* [3 回目] sum に i を加える
sum は 3 で、 i は 3 なので、
sum には、3 + 3 = 6 = 1 + 2 + 3 が入る
*/
i++; /* i の値を更新し.. */
/* [1回目] i は 1 だったので i は 2 になる */
/* [2回目] i は 2 だったので i は 3 になる */
/* [3回目] i は 3 だったので i は 4 になる */
}
/* [4回目] 中身は何もせず while の外に出る */
/* このとき i は 4 になっている
(i<n が成立しない状態)
*/
/*
*
*/
s_print_string ( "1 から " );
s_print_int ( n );
s_print_string ( " までの和は " );
s_print_int ( sum );
s_print_string ( " です。\n" );
/*
*
*/
return 0;
}
#include <stdio.h>
int main(int argc, char *argv[] ) {
int i = 0;
while ( i < 10 ) {
printf ( "hello\n" );
/* while 文の条件が変化するように、代入文が必要 */
/* 条件が変化しない場合は、無限ループになる */
/* i++; */
}
}
/*
* CDATE FILENAME
*/
/*
* while 文
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o BASENAME.exe FILENAME
* 実行
* BASENAME
*/
#include <stdio.h>
#include "s_print.h"
#include "s_input.h"
/*
* input_nth_numner
* 「QQQQ 番目の数値を入力してください」と出力し、整数値を入力して返す。
*/
int input_nth_numner ( int i ) {
/*
* プロンプト(入力促進メッセージ)を出力し..
*/
s_print_int ( i );
s_print_string ( " 番目の整数値を入力してください : " );
return s_input_int(); /* 整数を入力し、その結果を値として返す */
}
/*
* main
*
* n ( 任意の自然数 ) の整数の和を計算する
*/
int main( double argc, char *argv[] )
{
int sum = 0; /* 最初に 0 にし.. */
int i = 1; /* 最初に加えるのは 1 なので.. */
int n;
/*
*
*/
s_print_string ( "自然数を入力してください : " );
n = s_input_int(); /* n の値を入力 */
/*
int i;
int n; i の上限が入っているとすると
i = 1;
while ( i <= n ) { i = 1 .. n で、何かをする
何か
i++;
}
これは、「何か」を n 回実行するパターン
*/
while ( i <= n ) { /* i が n 以下の時は.. */
sum += input_nth_numner ( i );
i++;
} /* sum += input_nth_numner ( i ); を n 回実行するパターン */
/*
*
*/
s_print_int ( n );
s_print_string ( " 個の整数の和は " );
s_print_int ( sum );
s_print_string ( " です。\n" );
/*
*
*/
return 0;
}
/*
* 課題 20130628-01
*
* 2013/06/28 20130628-01-QQQQ.c
*
* キーボードから三つの整数を入力し、小さい順に出力する
*/
#include <stdio.h>
#include "s_input.h"
#include "s_print.h"
/*
* 2013/06/28 20130628-01-QQQQ.c
*/
/*
* 代入文 (計算結果の蓄積)
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o BASENAME.exe 20130628-01-QQQQ.c
* 実行
* BASENAME
*/
#include <stdio.h>
#include "s_print.h"
#include "s_input.h"
/*
* input_nth_numner
* 「QQQQ 番目の数値を入力してください」と出力し、整数値を入力して返す。
*/
int input_number ( void ) {
/*
* プロンプト(入力促進メッセージ)を出力し..
*/
s_print_string ( "正の数を入力してください(0 以下の数で終了) : " );
return s_input_int(); /* 整数を入力し、その結果を値として返す */
}
/*
* main
*
* 正の整数を入力し続ける限り、その数の総和を計算する
* [考え方]
*
* 最初の条件を作る
* while ( 正の整数が入力されている ) {
* 総和の計算をする
* 条件の変更を行う
* }
*
*/
int main( double argc, char *argv[] )
{
int sum = 0; /* 最初に 0 にし.. */
int num; /* キーボードから入力される整数値を
保持する変数 */
/*
*
*/
/* [最初の条件を作る] */
/* 入力が正の整数かどうかを(後で)判定するために
取り敢えず入力はしないと先に進めない.. */
num = input_number(); /* 取り敢えず、入力しないとなんとも.. */
/* [正の整数が入力されている間] */
/* num に、最後に入力された整数値が入っているので */
/* 条件としては 「num > 0」が「正の整数が入力」*/
while ( num > 0 ) { /* 入力された数が正ならば.. */
/* [総和の計算をする] */
/* sum に入力された値(num)を足し込めばよいので.. */
sum += num;
/* [条件の変更を行う] */
/* 現在の num は既に処理済で、
次の num が欲い.. */
num = input_number(); /* 次の入力を行う */
}
/*
*
*/
s_print_string ( "和は " );
/* sum の結果を出力すればよいので.. */
s_print_string ( " です。\n" );
/*
*
*/
return 0;
}
#include <stdio.h>
#include "s_print.h"
int main ( int argc, char *argv[] ) {
int i = 0;
/* i = 0 .. 9 まで i を出力 */
while ( i < 10 ) {
s_print_int ( i );
s_print_char ( ' ' );
i++;
}
s_print_newline();
return 0;
}
#include <stdio.h>
#include "s_print.h"
void while_func( int i ) {
/* i = 0 .. 9 まで i を出力 */
while ( i < 10 ) {
s_print_int ( i );
s_print_char ( ' ' );
i++;
}
}
int main ( int argc, char *argv[] ) {
int i = 0;
while_func( i ); /* i = 0 の初期化は引数として与える */
s_print_newline();
return 0;
}
#include <stdio.h>
#include "s_print.h"
/*
* while 文が一つだけの関数から再帰を使って while を除去できる
*
* [1] while を if に変更
* [2] while(if) の本体の最後で、再帰呼出しをする
* この時に、値が変化する変数を引数として渡す
*/
void while_func( int i ) {
/* i = 0 .. 9 まで i を出力 */
/*[1] while ( i < 10 ) { */
if ( i < 10 ) {
s_print_int ( i );
s_print_char ( ' ' );
i++;
/* [2] 再帰呼出しを行う */
while_func( i );
}
}
int main ( int argc, char *argv[] ) {
int i = 0;
while_func( i ); /* i = 0 の初期化は引数として与える */
s_print_newline();
return 0;
}
Download : 20130712-01.c ( SJIS 版 )
/*
* 課題 20130628-01
*
* 2013/06/28 20130628-01-QQQQ.c
*
* キーボードから三つの整数を入力し、小さい順に出力する
*/
#include <stdio.h>
#include "s_input.h"
#include "s_print.h"
/*
* 2013/06/28 20130628-01-QQQQ.c
*/
/*
* 代入文 (計算結果の蓄積)
*
* 利用方法
* コンパイル
* cc -Ic:\usr\c\include -o BASENAME.exe 20130628-01-QQQQ.c
* 実行
* BASENAME
*/
#include <stdio.h>
#include "s_print.h"
#include "s_input.h"
/*
* input_nth_numner
* 「QQQQ 番目の数値を入力してください」と出力し、整数値を入力して返す。
*/
int input_number ( void ) {
/*
* プロンプト(入力促進メッセージ)を出力し..
*/
s_print_string ( "正の数を入力してください(0 以下の数で終了) : " );
return s_input_int(); /* 整数を入力し、その結果を値として返す */
}
/*
* main
*
* 複数の正の数和を計算する(負の数を入力すると終わり)
*/
int main( double argc, char *argv[] )
{
int sum = 0; /* 最初に 0 にし.. */
int num;
/*
*
*/
num = input_number(); /* 取り敢えず、入力しないとなんとも.. */
while ( num > 0 ) { /* 入力された数が正ならば.. */
/*
** この部分を完成させなさい
*/
num = input_number(); /* 次の入力を行う */
}
/*
*
*/
s_print_string ( "和は " );
/*
** この部分を完成させなさい
*/
s_print_string ( " です。\n" );
/*
*
*/
return 0;
}
12 34 987 2 13 -1
C:\usr\c\> 20130712-01-QQQQ 正の数を入力してください(0 以下の数で終了) : 12 正の数を入力してください(0 以下の数で終了) : 34 正の数を入力してください(0 以下の数で終了) : 987 正の数を入力してください(0 以下の数で終了) : 2 正の数を入力してください(0 以下の数で終了) : 13 正の数を入力してください(0 以下の数で終了) : -1 和は 1048 です。 C:\usr\c\>