第3章 変数とデータ型 よく使われるデータ型 char ー文字処理、文字列処理で使う int ー整数処理で使う double ー浮動小数点数処理で使う データ型使用例 #include <stdio.h> int main(void) { char cdt; short sdt; int idt; long ldt; float fdt; double ddt; cdt = 120; sdt = 12345; idt = 123456789 ldt = 987654321; fdt = 22.33F; ddt = 12345.6789; printf(“char =%d\n”, cdt); printf(“short =%d\n”, sdt); printf(“int =%d\n”, idt); printf(“long =%ld\n”, ldt); printf(“float =%f\n”, fdt); printf(“double=%f\n”, ddt); return 0; } ー%dで10進数出力指定 -%ldはlong型数値を10進数出力指定 ー%fはfloat型とdouble方を出力指定 実行結 果 char short int long float double =120 =12345 =123456789 =987654321 =22.330000 =12345.678900 配列の機能を見る #include <stdio.h> int main(void) { int n; int dt[10]; dt[0] = 10; dt[9] = 99; n = 5; dt[n] =55; dt[2] = dt[9]; ーint型の普通の変数を宣言 ーint型の配列を宣言 -配列の先頭要素に値設定 -配列の末尾要素に値設定 ー変数nを使って添字指定 ー配列間で代入する printf(“dt[0]=%d\n”, printf(“dt[2]=%d\n”, printf(“dt[5]=%d\n”, printf(“dt[9]=%d\n”, return 0; } dt[0]); dt[2]); dt[5]); dt[9]); 実行結果 dt[0]=10 dt[2]=99 dt[5]=55 dt[9]=99 二次元配列機能を見る #include <stdio.h> int main(void) { int dt[3][5]; dt[0][0] = 111; dt[1][3] = 555; dt[2][4] = 999; ー二次元配列を宣言 ー先頭の要素に設定 ー途中の要素に設定 ー末尾の要素に設定 printf(“dt[0][0] =%d\n”, dt[0][0]); printf(“dt[1][3] =%d\n”, dt[1][3]); printf(“dt[2][4] =%d\n”, dt[2][4]); return 0; } 実行結果 dt[0][0]=111 dt[1][3]=555 dt[2][4]=999 char型配列による文字列の表 #include <stdio.h> 現 #include <string.h> /* for strcpy( ) */ int main(void) { char ss[10]; strcpy(ss, ”abcde”); printf(“%s\n”, ss); return 0; } ー文字型配列を宣言する ー変数ssに文字列”abcde”を設定する -変数ssで示す文字列を表示する 実行結果 abcde 文字と文字列との関係 #include <stdio.h> #include <string.h> /* for strcpy( ) */ int main(void) { char ss[4]; -char型配列確保 ss[0] = ‘A’; 配列の各要素に文字をひとつずつ入れていく ss[1] = ‘B’; ss[2] = ‘C’; ss[3] = 0; -最後にゼロを入れる printf(“%s\n”, ss); ー文字列として出力する strcpy(ss, “XYZ”); printf(“%s\n”, ss[0]); printf(“%s\n”, ss[1]); printf(“%s\n”, ss[2]); printf(“%s\n”, ss[3]); return 0; } ー文字列”XYZ”を設定する 配列の各要素の値をひとつ ずつ出力していく 実行結果 ABC -個別に設定したが文字列として出力でき る 88 89 90 0 文字列として設定したも ー’X’の文字コード(10進) のを個別に出力できる -’Y’の文字コード -’Z’の文字コード ー終端の文字0 文字列とナル文字の関係を見る #include <stdio.h> #include <string.h> /* for strcpy( ) */ int main(void) { char ss[10]; strcpy(ss, “abcdefg”); ー文字列を設定する printf(“文字列は[%s]\n”, ss); ー文字列を出力 ss[3] = ‘\0’; ーss[3]をナル文字にする printf(“文字列は[%s]\n, ss); ー文字列を出力 ss[3] = ‘X’; ーss[3]をナル文字にする printf(“文字列は[%s]\n, ss); ー文字列を出力 ss[0] = ‘\0’; ー先頭にナル文字を設定する printf(“文字列は[%s]\n, ss); ー文字列を出力 return 0; } 実行結果 文字列は[abcdefg] 文字列は[abc] 文字列は[abcxefg] 文字列は[ ] 練習問題1 実行結果 合計値=600 解答例 #inclede <stdio.h> int main(void) { int dt[3] = {100, 200, 300}; int sum, sum = dt[0] + dt[1] + dt[2]; printf(“合計値 =%d\n”, sum); return 0; } 練習問題2 実行結果 文字列は=ABCDE 最初の文字は=A 最初の文字コードは=65 最後の文字は=E 最後の文字コードは=69 解答例 #include <stdio.h> int main(void) { char ss[80] = “ABCDE”; printf(“文字列は =%s\n, ss); printf(“最初の文字は =%c\n, ss[0]); printf(“最初の文字コードは =%d\n, ss[0]); printf(“最後の文字は =%c\n, ss[4]); printf(“最後の文字コードは =%d\n, ss[4]); return 0; }
© Copyright 2024 ExpyDoc