1998-02-01から1ヶ月間の記事一覧

型や変数の大きさを表示

C

明解C言語 入門編 > 7. 基本型 > 型や変数の大きさを表示 C #include <stdio.h>int main(int argc, char* argv[]) { char a; signed char b; unsigned char c; int d; signed int e; unsigned f; unsigned int g; short h; short int i; signed short int j; unsigne</stdio.h>…

ビットシフト

C

明解C言語 入門編 > 7. 基本型 > ビットシフト C #include <stdio.h>int count_bits(unsigned x) { int count = 0; while (x) { if (x & 1u) count++; x >>= 1; } return count; }int int_bits(void) { return count_bits(~0u); }void print_bits(unsigned x) { int </stdio.h>…

論理和・論理積・排他的論理和

C

明解C言語 入門編 > 7. 基本型 > 論理和・論理積・排他的論理和 C #include <stdio.h>int count_bits(unsigned x) { int count = 0; while (x) { if (x & 1u) count++; x >>= 1; } return count; }int int_bits(void) { return count_bits(~0u); }void print_bits(un</stdio.h>…

ビット構成を表示する

C

明解C言語 入門編 > 7. 基本型 > ビット構成を表示する C #include <stdio.h>int count_bits(unsigned x) { int count = 0; while (x) { if (x & 1u) count++; x >>= 1; } return count; }int int_bits(void) { return count_bits(~0u); }void print_bits(unsigned x</stdio.h>…

暗黙の初期化

C

明解C言語 入門編 > 6. 関数 > 暗黙の初期化 C #include <stdio.h>int fx = 0;void func(void) { static int sx; int ax; printf("%3d%3d%3d\n", ax, sx, fx); }int main(int argc, char* argv[]) { func(); }実行結果 R:\>lesson054\project1.exe 8802932 0 0</stdio.h>

自動記憶域期間 と 静的記憶域期間

C

明解C言語 入門編 > 6. 関数 > 自動記憶域期間 と 静的記憶域期間 C #include <stdio.h>int fx = 0;void func(void) { static int sx = 0; int ax = 0; printf("%3d%3d%3d\n", ax++, sx++, fx++); }int main(int argc, char* argv[]) { puts(" ax sx fx"); puts("---</stdio.h>…

識別子の有効範囲を確認する

C

明解C言語 入門編 > 6. 関数 > 識別子の有効範囲を確認する C #include <stdio.h>int x = 700;void print_x(void) { printf("%d\n", x); }int main(int argc, char* argv[]) { int x = 800; print_x(); /* 700 */ printf("%d\n", x); /* 800 */ int i; for (i = 1; i </stdio.h>…

多次元配列の受け渡し

C

明解C言語 入門編 > 6. 関数 > 多次元配列の受け渡し C #include <stdio.h>void mat_add(const int ma[][3], const int mb[][3], int mc[][3]) { int i, j; for (i = 0; i < 2; i++) for (j = 0; j < 3; j++) mc[i][j] = ma[i][j] + mb[i][j]; }int main(int argc, c</stdio.h>…

逐次探索 (番兵)

C

明解C言語 入門編 > 6. 関数 > 逐次探索 (番兵) C #include <stdio.h>#define NINSU 5 #define FAILED -1int search(int ary[], const int key, const int no) { ary[no] = key; int i = 0; while (1) { if (ary[i] == key) break; i++; } return (i == no ? FAILED </stdio.h>…

逐次探索

C

明解C言語 入門編 > 6. 関数 > 逐次探索 C #include <stdio.h>#define NINSU 5 #define FAILED -1int search(const int ary[], const int key, const int no) { int i = 0; while (1) { if (i == no ) return FAILED; if (ary[i] == key) return i + 1; i++; } }int </stdio.h>…

受け取った配列への書き込み

C

明解C言語 入門編 > 6. 関数 > 受け取った配列への書き込み C #include <stdio.h>#define NINSU 5void int_set(int vc[], int no) { int i; for (i = 0; i < no; i++) vc[i] = i; no = 0; }int main(int argc, char* argv[]) { int i = NINSU; int j; int ary[NINSU]</stdio.h>…

配列の受け渡し

C

明解C言語 入門編 > 6. 関数 > 配列の受け渡し C #include <stdio.h>#define NINSU 5int max_of(int vc[], int no) { int i; int max = vc[0]; for (i = 1; i < no; i++) if (vc[i] > max) max = vc[i]; return max; }int main(int argc, char* argv[]) { int i; int</stdio.h>…

関数プロトタイプ

C

明解C言語 入門編 > 6. 関数 > 関数プロトタイプ C #include <stdio.h> int max3(int, int, int);int main(int argc, char* argv[]) { int n1, n2, n3; puts("3つの整数を入力してください。"); printf("整数1:"); scanf("%d", &n1); printf("整数2:"); scanf("</stdio.h>…

値を返さない関数・仮引数を受け取らない関数

C

明解C言語 入門編 > 6. 関数 > 値を返さない関数・仮引数を受け取らない関数 C #include <stdio.h> int n1, n2, n3;void max3(void) { int max = n1; if (n2 > max) max = n2; if (n3 > max) max = n3; printf("最も大きい値は%dです。\n", max); } int main(int arg</stdio.h>…

読み込んだ3つの整数値の最大値を返す関数

C

明解C言語 入門編 > 6. 関数 > 読み込んだ3つの整数値の最大値を返す関数 C #include <stdio.h> int max3(int x, int y, int z) { int max = x; if (y > max) max = y; if (z > max) max = z; return max; } int main(int argc, char* argv[]) { int n1, n2, n3; pu</stdio.h>…

読み込んだ2つの整数値の大きい方の値を返す関数

C

明解C言語 入門編 > 6. 関数 > 読み込んだ2つの整数値の大きい方の値を返す関数 C #include <stdio.h> int maxof(int x, int y) { return (x > y) ? x : y; } int main(int argc, char* argv[]) { int n1, n2; puts("2つの整数を入力してください。"); printf("整</stdio.h>…

素数を求める (ver.5)

C

明解C言語 入門編 > 5. 配列 > 素数を求める (ver.5) C #include <stdio.h> int main(int argc, char* argv[]) { int i, no; int prime[15]; int ptr = 0; unsigned long counter = 0; prime[ptr++] = 2; prime[ptr++] = 3; for (no = 5; no <= 30; no += 2) { int j</stdio.h>…

素数を求める (ver.4)

C

明解C言語 入門編 > 5. 配列 > 素数を求める (ver.4) C #include <stdio.h> int main(int argc, char* argv[]) { int i, no; int prime[15]; int ptr = 0; unsigned long counter = 0; prime[ptr++] = 2; prime[ptr++] = 3; for (no = 5; no <= 30; no += 2) { for (</stdio.h>…

素数を求める (ver.3)

C

明解C言語 入門編 > 5. 配列 > 素数を求める (ver.3) C #include <stdio.h> int main(int argc, char* argv[]) { int i, no; unsigned long counter = 0; no = 2; printf("%d\n", no); /* 素数 */ for (no = 3; no <= 30; no += 2) { for (i = 3; i < no; i += 2) { </stdio.h>…

素数を求める (ver.2)

C

明解C言語 入門編 > 5. 配列 > 素数を求める (ver.2) C #include <stdio.h> int main(int argc, char* argv[]) { int i, no; unsigned long counter = 0; no = 2; printf("%d\n", no); /* 素数 */ for (no = 3; no <= 30; no += 2) { for (i = 2; i < no; i++) { cou</stdio.h>…

素数を求める (ver.1)

C

明解C言語 入門編 > 5. 配列 > 素数を求める (ver.1) C #include <stdio.h> int main(int argc, char* argv[]) { int i, no; unsigned long counter = 0; for (no = 2; no <= 30; no++) { for (i = 2; i < no; i++) { counter++; if (no % i == 0) break; /* 割り切</stdio.h>…

2行3列の行列を加算する (多次元配列)

C

明解C言語 入門編 > 5. 配列 > 2行3列の行列を加算する (多次元配列) C #include <stdio.h> int main(int argc, char* argv[]) { int i, j; int ma[2][3] = {{1, 2, 3}, {4, 5, 6}}; int mb[2][3] = {{6, 3, 4}, {5, 1, 2}}; int mc[2][3] = {0}; for (i = 0; i < </stdio.h>…

配列の要素に値を読み込む (代入式)

C

明解C言語 入門編 > 5. 配列 > 配列の要素に値を読み込む (代入式) C #include <stdio.h>#define NINSU 5int main(int argc, char* argv[]) { int i; int score[NINSU]; int sum = 0; int min, max; puts("点数を入力してください。"); for (i = 0; i < NINSU; i++) </stdio.h>…

配列の要素に値を読み込む (#define)

C

明解C言語 入門編 > 5. 配列 > 配列の要素に値を読み込む (#define) C #include <stdio.h>#define NINSU 5int main(int argc, char* argv[]) { int i; int score[NINSU]; int sum = 0; puts("点数を入力してください。"); for (i = 0; i < NINSU; i++) { printf("%d</stdio.h>…

配列の要素に値を読み込む

C

明解C言語 入門編 > 5. 配列 > 配列の要素に値を読み込む C #include <stdio.h> int main(int argc, char* argv[]) { int i; int score[5]; int sum = 0; puts("点数を入力してください。"); for (i = 0; i < 5; i++) { printf("%d番:", i + 1); scanf("%d", &score</stdio.h>…

配列のコピー

C

明解C言語 入門編 > 5. 配列 > 配列のコピー C #include <stdio.h> int main(int argc, char* argv[]) { int i; int va[5] = {1, 2, 3, 4, 5}; int vb[5]; for (i = 0; i < 5; i++) vb[i] = va[i]; puts(" va vb"); puts("-------"); for (i = 0; i < 5; i++) printf</stdio.h>…

配列の各要素に先頭から順に 1,2,3,4 を代入して表示 (初期化子の足りない要素)

C

明解C言語 入門編 > 5. 配列 > 配列の各要素に先頭から順に 1,2,3,4 を代入して表示 (初期化子の足りない要素) C #include <stdio.h> int main(int argc, char* argv[]) { int i; int score[5] = {1, 2, 3, 4}; for (i = 0; i < 5; i++) printf("点数%d = %d\</stdio.h>…

配列の各要素に先頭から順に 1,2,3,4,5 を代入して表示 (for文)

C

明解C言語 入門編 > 5. 配列 > 配列の各要素に先頭から順に 1,2,3,4,5 を代入して表示 (for文) C #include <stdio.h> int main(int argc, char* argv[]) { int i; int score[5]; for (i = 0; i < 5; i++) score[i] = i + 1; for (i = 0; i < 5; i++) printf</stdio.h>…