+ All Categories
Home > Documents > * pro06031.c n 以下の整数の2乗 */ #include...

* pro06031.c n 以下の整数の2乗 */ #include...

Date post: 10-Mar-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
14
/* pro06031.c n 以下の整数の 2 乗 */ #include <stdio.h> int main(void) { int n, i, k; printf(" 整数nを入力 :"); scanf("%d", &n); for (i=1; i<=n; i++){ k = i * i; printf("%d\n", k); } return 0; } pro-06031 解答例
Transcript
Page 1: * pro06031.c n 以下の整数の2乗 */ #include …hezoe/pro/files/programming04.pdf文字列配列の初期化(3章p.68) 配列のサイズが空白の場合 初期値の文字数+1が自動的に

/* pro06031.c n以下の整数の 2乗 */#include <stdio.h> int main(void){ int n, i, k; printf(" 整数nを入力 :"); scanf("%d", &n); for (i=1; i<=n; i++){ k = i * i; printf("%d\n", k); } return 0;}

pro-06031 解答例

Page 2: * pro06031.c n 以下の整数の2乗 */ #include …hezoe/pro/files/programming04.pdf文字列配列の初期化(3章p.68) 配列のサイズが空白の場合 初期値の文字数+1が自動的に

printf() の中に直接計算式を書いてもよい

/* pro06031.c n以下の整数の 2乗 */#include <stdio.h> int main(void){ int n, i; printf(" 整数nを入力 :"); scanf("%d", &n); for (i=1; i<=n; i++){ printf("%d\n", i*i); } return 0;}

pro-06031 解答例 2

Page 3: * pro06031.c n 以下の整数の2乗 */ #include …hezoe/pro/files/programming04.pdf文字列配列の初期化(3章p.68) 配列のサイズが空白の場合 初期値の文字数+1が自動的に

/* pro06032.c 整数の約数 */#include <stdio.h>

int main(void){ int n, i;

printf(" 整数を入力 :"); scanf("%d", &n);

printf(" 約数は \n"); for (i=1; i<=n; i++){ if(n%i == 0){ printf("%d\n",i); } } return 0;}

pro-06032 解答例

Page 4: * pro06031.c n 以下の整数の2乗 */ #include …hezoe/pro/files/programming04.pdf文字列配列の初期化(3章p.68) 配列のサイズが空白の場合 初期値の文字数+1が自動的に

while (継続条件) { 文}

制御文 while (処理をループさせる)

継続条件 NO

YES文

Page 5: * pro06031.c n 以下の整数の2乗 */ #include …hezoe/pro/files/programming04.pdf文字列配列の初期化(3章p.68) 配列のサイズが空白の場合 初期値の文字数+1が自動的に

while 文( ) 内の条件が真であるかぎり{ } 内を反復実行(ループ)

dt[i] が -1 と等しくないかぎりループを続ける

/* ex030.c */#include <stdio.h>

int main(void){ int i, dt[ ] = {100, 200, 300, -1, 400}; i = 0; while (dt[i] != -1) { printf("%d\n", dt[i]); i++; } return 0;}

while 文の使用例 1 (p.108) (ex030.c)

Page 6: * pro06031.c n 以下の整数の2乗 */ #include …hezoe/pro/files/programming04.pdf文字列配列の初期化(3章p.68) 配列のサイズが空白の場合 初期値の文字数+1が自動的に

配列の初期化 (3章 p.67)配列を宣言すると同時に初期値を設定

配列のサイズが空白の場合初期値の個数で自動的に決定(この場合は 5)

/* ex030.c */#include <stdio.h>

int main(void){ int i, dt[ ] = {100, 200, 300, -1, 400}; i = 0; while (dt[i] != -1) { printf("%d\n", dt[i]); i++; } return 0;}

while 文の使用例 1 (p.108) (ex030.c)

Page 7: * pro06031.c n 以下の整数の2乗 */ #include …hezoe/pro/files/programming04.pdf文字列配列の初期化(3章p.68) 配列のサイズが空白の場合 初期値の文字数+1が自動的に

/* ex031.c */#include <stdio.h>

int main(void){ int nn, sum = 0; scanf("%d", &nn); /* 最初のデータ入力 */

while (nn != 0) { /* nn が 0 と等しくなければループを続行 */

printf(" 入力値 =%d\n", nn); sum = sum + nn; scanf("%d", &nn); /* 2 回目以降のデータ入力 */

} printf(" 合計値 =%d\n", sum); return 0;}

while 文の使用例 2 (p.110) (ex031.c)

Page 8: * pro06031.c n 以下の整数の2乗 */ #include …hezoe/pro/files/programming04.pdf文字列配列の初期化(3章p.68) 配列のサイズが空白の場合 初期値の文字数+1が自動的に

do { 文} while (継続条件);

制御文 do-while (処理をループさせる)

継続条件 NO

YES文

Page 9: * pro06031.c n 以下の整数の2乗 */ #include …hezoe/pro/files/programming04.pdf文字列配列の初期化(3章p.68) 配列のサイズが空白の場合 初期値の文字数+1が自動的に

do-while 文doの後の文を実行した後でwhile の後の ( ) の中の条件を調べる

ss[n] がナル文字以外のときループを継続ss[n] を出力した後で、それがナル文字かどうかを調べている

/* ex032.c */#include <stdio.h>

int main(void){ int n; char ss[ ] = "ABCDE"; printf("%s\n", ss); n = -1; do { ++n; printf("%d ", ss[n]); } while(ss[n] != '\0'); printf("\n"); return 0;}

do-while 文の使用例 (p.112) (ex032.c)

Page 10: * pro06031.c n 以下の整数の2乗 */ #include …hezoe/pro/files/programming04.pdf文字列配列の初期化(3章p.68) 配列のサイズが空白の場合 初期値の文字数+1が自動的に

文字列配列の初期化 (3章 p.68)配列のサイズが空白の場合初期値の文字数+1が自動的に配列のサイズになる(初期値の文字数の後にナル文字 (¥0) が付加されるため)この場合の配列のサイズは 6

/* ex032.c */#include <stdio.h>

int main(void){ int n; char ss[ ] = "ABCDE"; printf("%s\n", ss); n = -1; do { ++n; printf("%d ", ss[n]); } while(ss[n] != '\0'); printf("\n"); return 0;}

do-while 文の使用例 (p.112) (ex032.c)

Page 11: * pro06031.c n 以下の整数の2乗 */ #include …hezoe/pro/files/programming04.pdf文字列配列の初期化(3章p.68) 配列のサイズが空白の場合 初期値の文字数+1が自動的に

++nnに 1を加える (第 4章 p.81)( この場合は n++でも同じ )

%s文字列を入出力するための変換仕様

C言語の文字コードについては教科書の表紙裏を参照

/* ex032.c */#include <stdio.h>

int main(void){ int n; char ss[ ] = "ABCDE"; printf("%s\n", ss); n = -1; do { ++n; printf("%d ", ss[n]); } while(ss[n] != '\0'); printf("\n"); return 0;}

do-while 文の使用例 (p.112) (ex032.c)

Page 12: * pro06031.c n 以下の整数の2乗 */ #include …hezoe/pro/files/programming04.pdf文字列配列の初期化(3章p.68) 配列のサイズが空白の場合 初期値の文字数+1が自動的に

do-while 文doの後の文を実行した後でwhile の後の ( ) の中の条件を調べる

while 文( ) の中の条件を調べたあとで文を実行

/* ex033.c */#include <stdio.h>

int main(void){ int m, k; printf("k の値を入力 \n"); scanf("%d", &k); m = k; printf("100 以下の kの倍数は \n"); while(m < 100){ printf("%d\n", m); m += k; } m = k; printf("100 以下の kの倍数は \n"); do{ printf("%d\n", m); m += k; } while(m < 100); return 0;}

while 文と do-while 文の違い

Page 13: * pro06031.c n 以下の整数の2乗 */ #include …hezoe/pro/files/programming04.pdf文字列配列の初期化(3章p.68) 配列のサイズが空白の場合 初期値の文字数+1が自動的に

switch 文( ) の中の整数値と一致した case から実行するbreak に出会うと switch 文を終了どの case とも一致しない場合はdefault を実行

/* ex033.c */#include <stdio.h>

int main(void){ int a; for (a=1; a<=5; a++) { printf("--------%d\n", a); switch (a) { case 1: printf("a=1\n"); break; case 3: printf("a=3\n"); break; case 5: printf("a=5\n"); break; default: printf(" その他 \n"); } } return 0;}

switch 文で分岐する (p.114) (ex033.c)

Page 14: * pro06031.c n 以下の整数の2乗 */ #include …hezoe/pro/files/programming04.pdf文字列配列の初期化(3章p.68) 配列のサイズが空白の場合 初期値の文字数+1が自動的に

本日の課題前回の課題をwhile文を用いて書き換える。

pro-06041キーボードから整数 n を読み込み、n以下の整数の2乗を表示させる。

pro-06042キーボードから整数を読み込み、その約数を小さい順に表示させる。


Recommended