indentについて forやifの「中身」を右に寄せる. forやifの「外枠」は右に寄せない. int x; x = 3; if( x == 0 ){ printf("xは0です.\n"); printf("3ではないです.\n"); } printf("Hello\n"); 中身 外枠
indentについて forの中身だけ右に ifの中身だけ右に void main(){ int i; int j; i = 7; for(i=0; i<10; i++){ j = i*i; printf("%d\n", j); if( j < 50 ){ printf("j<50\n"); printf("j=%d\n", j); } j = 7; printf("%d %d\n“, i, j); printf("Hello\n"); forの中身だけ右に ifの中身だけ右に
indentのさせ方 厳密には,「indentのさせ方は,人それぞれ」であり,正解は存在しない. が,本講義では 一つのルールを定め, これを本講義の"公式"とする.
indent : if文の書き方 以下の様に書く if( x == 3){ printf("A"); } ポイント { は省略しない 以下はNGとする. if( x == 3) { printf("A"); }
indent : if文の書き方 以下はNGとする. if( x == 3) { printf("A"); } else { printf("B"); indent : if文の書き方 以下の様に書く if( x == 3){ printf("A"); } else { printf("B"); } ポイント { は省略しない } と else と { は全て同じ行 ifの"i"と"}"と"}"が同じ横座標 以下はNGとする. if( x == 3) { printf("A"); } else printf("B");
indent : for文の書き方 以下の様に書く for(i=0; i<10; i++){ printf("A"); } ポイント { は省略しない for と { は同じ行 forの"f"と"}"が同じ横座標 以下はNGとする. for(i=0; i<10; i++) { printf("A"); }
indent : switch文の書き方 以下の様に書く switch( x ){ case 1: printf("one\n"); break; default: printf("another\n"); } ポイント { は省略しない switch と { は同じ行 switchの"s"と,caseの"c"と,"}"が同じ横座標 以下はNGとする. switch( x ) { case 1: printf("one\n"); break; default; printf("another\n"); }
indent有無の比較 適切なindentの例 void main(){ int i, j; for(i=0; i<10; i++){ int j; for(j=0; j<10; j++){ if( i + j < 10 ){ printf("%d%d",i,j); } printf("\n"); 不適切なindentの例 void main(){ int i, j; for(i=0; i<10; i++){ int j; for(j=0; j<10; j++){ if( i + j < 10 ){ printf("%d%d",i,j); } printf("\n");
なぞなエラーメッセージ エラー 1 error C3872: '0x3000': この文字を識別子で使用することはできません その行に,全角スペース文字が入っています. 人間には全角スペース文字は見えませんが, コンピュータにとって 全角スペースと 半角スペースは 別の文字です. 該当行の全角スペースを削除してください.
よくあるミス for(i=0; i<10; i++); { printf("Hello\n"); } ↑これを実行しても, 何も表示されない. ここに ; を書いてはならない.
printf int i; i=23; printf("i=%d.\n", i); printf("i=%3d.\n", i); printf("i=%4d.\n", i); printf("i=%5d.\n", i); printf("i=%03d.\n", i); printf("i=%05d.\n", i); printf("i=%+d.\n", i); printf("i=%+05d.\n", i); printf("i=%-4d.\n", i); printf("i=%-5d.\n", i); printf("i=%+-5d.\n", i); i= 123456; i=23. i= 23. i= 23. i= 23. i=023. i=00023. i=+23. i=+0023. i=23 . i=23 . i=+23 . i=123456. 3桁使用する.足りない分は空白で埋める. 4桁使用する.足りない分は空白で埋める. 5桁使用する.足りない分は空白で埋める. 3桁使用する.足りない分は0で埋める. 5桁使用する.足りない分は0で埋める. 正の数でも符号(+)を表示する. 5桁使用する(0で埋める).符号を表示する. 4桁使用する.左詰めにする. 5桁使用する.左詰めにする. 5桁使用する.符号を表示する.左詰めにする. 3桁使用する.入りきらない場合は4桁以上になる. 実行結果
printf double d = 123.456; printf("%lf\n", d); printf("%10lf\n", d); printf("%12lf\n", d); printf("%12.5lf\n", d); printf("%010.5lf\n", d); printf("%+lf\n", d); printf("%+12.5lf\n", d); 123.456000 123.45600 0123.45600 +123.456000 +123.45600 実行結果 10桁使用する.足りない分は空白で埋める. 12桁使用する.足りない分は空白で埋める. 全部で12桁使用する.小数点以下に5桁使用する. 足りない分は空白で埋める. 足りない分は0で埋める. 正の数でも符号(+)を表示する. 足りない分は空白で埋める.符号を表示する.
for文はint型で行う プログラム #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { double d; int cnt=0; for(d=0.0; d<1.0; d+=0.1){ printf("%.20lf\n", d); cnt ++; } printf("cnt=%d\n", cnt); return 0; 実行結果 0.00000000000000000000 0.10000000000000001000 0.20000000000000001000 0.30000000000000004000 0.40000000000000002000 0.50000000000000000000 0.59999999999999998000 0.69999999999999996000 0.79999999999999993000 0.89999999999999991000 0.99999999999999989000 cnt=11 なんと, 11回やっている!!
マクロ定義 #define MAX 100 void main(){ int i; for(i=0; i<MAX; i++){ printf("Hello\n"); }
マクロ定義 #define MAX 100 void main(){ int i; for(i=0; i<MAX; i++){ printf("Hello\n"); } void main(){ int i; for(i=0; i<100; i++){ printf("Hello\n"); } 置換 100回表示
マクロ定義 #define MAX 2*5 void main(){ int i; i = MAX; printf("%d\n", i); }
マクロ定義 #define MAX 2*5 void main(){ int i; i = MAX; printf("%d\n", i); } void main(){ int i; i = 2*5; printf("%d\n", i); } 置換 10を表示
マクロ定義 #define MAX 2*5 void main(){ int i; i = 20/MAX; printf("%d\n", i); }
マクロ定義 #define MAX 2*5 void main(){ int i; i = 20/MAX; printf("%d\n", i); } void main(){ int i; i = 20/2*5; printf("%d\n", i); } 置換 50を表示
マクロ定義 #define MAX (2*5) void main(){ int i; i = 20/MAX; printf("%d\n", i); }
マクロ定義 #define MAX (2*5) void main(){ int i; i = 20/MAX; printf("%d\n", i); } void main(){ int i; i = 20/(2*5); printf("%d\n", i); } 置換 2を表示