第1〜7回までの要点を チートシート でおさらいし、コード読み取り6問 と 「よくあるミス」チェックリスト で定着度を確認します。
#include <stdio.h> int main(void) { printf("Hello\n"); return 0; }
| 型 | 例 | printf | scanf |
|---|---|---|---|
| int | 42 | %d | %d |
| double | 3.14 | %f | %lf |
%.2f(小数2桁)%5d(5桁右寄せ)などprintf("x=%d, y=%d\n", x, y); printf("%.2f", 3.145); // → 3.14(四捨五入) printf("%5d", 42); // → 42(5桁右寄せ) printf("%05d", 42); // → 00042(0埋め)
int n; scanf("%d", &n); // & 必須! double x; scanf("%lf", &x); // double は %lf
%f とズレる)int a = 10; // a:10 int b = 30; // b:30 b = a; // b:10 (30 は消える) a = 5; // a:5 (10 は消える) // 結果: a=5, b=10
int a = 10, b = 30; b = a; a = 5; printf("%d %d\n", a, b);
int x = 7; printf("%f\n", x);
%f(実数用)を指定すると、メモリの解釈がズレ 正しい値が表示されません。double a = 3.145, b = 3.144; printf("%.2f %.2f\n", a, b);
%.2f は 四捨五入。printf("x=%d", 3); printf("y=%d\n", 7);
x=3 の直後に y=7 がそのままくっつき、x=3y=7 が1行で表示されます。int n; scanf("%d", n); // ← & を忘れた printf("%d\n", n);
& を忘れると、変数の中身(未初期化のゴミ)がアドレスとして使われ、書き込み先が不正になり クラッシュ しやすくなります。double x; scanf("???", &x); printf("%f\n", x);
& を忘れたscanf("%d", n) ではなく scanf("%d", &n) が正解。配列名(文字列)は例外的に & 不要。
\n を入れる。
; 忘れ; が無いかは、エラー位置の 1〜2 行上 を疑うのが定石。
"x=%d, y=%d" なら、第2引数以降に x, y の順 で並べる。順番が逆だと値も逆に表示される。
= と比較 == を混同したa = 5 は「a に 5 を入れる」、a == 5 は「a は 5 か?」。