etc

indentについて
• forやifの「中身」を右に寄せる.
• forやifの「外枠」は右に寄せない.
int x;
中身
x = 3;
if( x == 0 ){
printf("xは0です.\n");
外枠
printf("3ではないです.\n");
}
printf("Hello\n");
indentについて
void main(){
int i;
int j;
i = 7;
for(i=0; i<10; i++){
j = i*i;
forの中身だけ右に
printf("%d\n", j);
if( j < 50 ){
printf("j<50\n");
ifの中身だけ右に
printf("j=%d\n", j);
}
}
j = 7;
printf("%d %d\n“, i, j);
printf("Hello\n");
}
indentのさせ方
• 厳密には,「indentのさせ方は,人それぞれ」
であり,正解は存在しない.
• が,本講義では 一つのルールを定め,
これを本講義の"公式"とする.
indent : if文の書き方
• 以下の様に書く
if( x == 3){
printf("A");
}
ポイント
• { は省略しない
• if と { は同じ行
• ifの"i"と"}"が同じ横座標
• 以下はNGとする.
if( x == 3)
{
printf("A");
}
if( x == 3)
{
printf("A");
}
if( x == 3)
printf("A");
indent : if文の書き方
• 以下の様に書く
if( x == 3){
printf("A");
} else {
printf("B");
}
ポイント
• { は省略しない
• } と else と { は全て同じ行
• ifの"i"と"}"と"}"が同じ横座標
• 以下はNGとする.
if( x == 3)
{
printf("A");
}
else {
printf("B");
}
• 以下は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");
}
for(i=0; i<10; i++)
{
printf("A");
}
for(i=0; i<10; i++)
printf("A");
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;
printf("i=%3d.\n", i);
実行結果
i=23.
i= 23.
i= 23.
i=
23.
i=023.
i=00023.
i=+23.
i=+0023.
i=23 .
i=23
.
i=+23 .
3桁使用する.足りない分は空白で埋める.
4桁使用する.足りない分は空白で埋める.
5桁使用する.足りない分は空白で埋める.
3桁使用する.足りない分は0で埋める.
5桁使用する.足りない分は0で埋める.
正の数でも符号(+)を表示する.
5桁使用する(0で埋める).符号を表示する.
4桁使用する.左詰めにする.
5桁使用する.左詰めにする.
5桁使用する.符号を表示する.左詰めにする.
i=123456. 3桁使用する.入りきらない場合は4桁以上になる.
printf
double d = 123.456;
printf("%lf\n", d);
printf("%10lf\n", d);
printf("%12lf\n", d);
printf("%12.5lf\n", d);
実行結果
123.456000
123.456000
123.456000
123.45600
printf("%010.5lf\n", d); 0123.45600
printf("%+lf\n", d);
+123.456000
printf("%+12.5lf\n", d); +123.45600
10桁使用する.足りない分は空白で埋める.
12桁使用する.足りない分は空白で埋める.
全部で12桁使用する.小数点以下に5桁使用する.
足りない分は空白で埋める.
全部で12桁使用する.小数点以下に5桁使用する.
足りない分は0で埋める.
正の数でも符号(+)を表示する.
全部で12桁使用する.小数点以下に5桁使用する.
足りない分は空白で埋める.符号を表示する.
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回やっている!!