プログラムの作成と実行3 /* 66666 tachibana masayoshi */ /* p49 list 2.12x */ #include "stdafx.h" int main(void) { int a,b ; printf("a = "); scanf("%d", &a); VC++ではscanf_s("%d", &a)を使用する printf("b = "); scanf("%d", &b); VC++ではscanf_s("%d", &b)を使用する printf("a = %d, b = %d\n",a,b); printf("%d + %d = \t%d\n",a,b,a+b); printf("%d - %d = \t%d\n",a,b,a-b); printf("%d * %d = \t%d\n",a,b,a*b); printf("%d / %d = \t%d\n",a,b,a/b); printf("%d %% %d = \t%d\n",a,b,a%b); return 0; } scanf関数 (scanf_s関数) 入力フォーマット scanf("%d", &a) &変数 VC++ではscanf_s("%d", &a) scanf関数 (scanf_s関数) 入力フォーマット scanf("%d", &a) &変数 &a は「変数の場所」をあらわす VC++ではscanf_s("%d", &a) /* 66666 tachibana masayoshi */ /* p52 list 2.13 */ #include "stdafx.h" int main(void) { int k; printf("整数値を入力してください>>>"); scanf_s("%d",&k); if (k==0) printf("入力された値は0ですね\n"); printf("プログラムを終了します\n"); return 0; } /* 66666 tachibana masayoshi */ /* p52 list 2.13 */ #include "stdafx.h" int main(void) { int k; printf("整数値を入力してください>>>"); scanf_s("%d",&k); if (k==0) printf("入力された値は0ですね\n"); printf("プログラムを終了します\n"); return 0; } if (k==0) printf("入力された値は0ですね\n"); k の値が 0 に等しい時だけ実行される。 k の値が 0に等しい時は真、0でない場合は偽 == (=を二つ並べる)であることに注意す ること 条件式 (P103-P112) • 関係演算子 == 等しい != 等しくない >= <= > < 条件式は0(偽)または 1(真)のint型の値を返 す。 正の値を返す式は真と見 なされる。 if 文 (P112-117) if (条件式) 文 ; if (条件式) { 文1; 文2; } 文が1つでもこちらの形式がお薦 め ブロック 文) (複 複文 { { 文1; 文2; { 文 文1; 文2; 文N; } 3; 文 4; } } ネストした複 文 /* 66666 tachibana masayoshi */ /* p56 list 2.16x */ #include "stdafx.h" int main(void) { int a,b ; printf("a = "); scanf_s("%d", &a); printf("b= "); scanf_s("%d", &b); printf("a = %d, b = %d\n",a,b); printf("%d + %d = \t%d\n",a,b,a+b); printf("%d - %d = \t%d\n",a,b,a-b); printf("%d * %d = \t%d\n",a,b,a*b); if (b!=0) { printf("%d / %d = \t%d\n",a,b,a/b); printf("%d %% %d = \t%d\n",a,b,a%b); } return 0; } printf("%d + %d = \t%d\n",a,b,a+b); printf("%d - %d = \t%d\n",a,b,a-b); printf("%d * %d = \t%d\n",a,b,a*b); if (b!=0) { printf("%d / %d = \t%d\n",a,b,a/b); printf("%d %% %d = \t%d\n",a,b,a%b); } return 0; } bが0でない時、割り算、剰余の計算を行う。 (bが0である時、割り算、剰余の計算を行わな い。) プログラムを見やすく書く • C言語はフリーフォーマット – 空白や改行は、多くの場合意味を持たない • 読みやすいようにインデント(字下げ)する • 語を分断しない限り、自由にコメントを入れる ことが出来る インデントされていないソースプログラム(その1) #include "stdafx.h" int main(void){int a;a=3;printf("%d\n",a);a=a+1; printf("%d\n",a);return 0;} 1行に複数の文が書かれている。 {}の対応関係がよくわからない。 インデントされていないソースプログラム(その2) #include "stdafx.h" int main(void){ int a; a=3; printf("%d\n",a); a=a+1; printf("%d\n",a); return 0;} {}の対応関係がよくわからない。 #include "stdafx.h" int main(void){int a;a=3;printf("%d\n",a);a=a+1; printf("%d\n",a);return 0;} インデントされたソースプログラ ム #include "stdafx.h" int main(void) { int a; a=3; printf("%d\n",a); a=a+1; printf("%d\n",a); return 0; } インデントの簡単なルール • 1行の1文 • {}はそれぞれ1行にして、同じカラムに書 き、対応関係がわかるようにする • {}の内側はタブ1個分または2から4文字 下げる /* 66666 tachibana masayoshi */ /* p53 list 2.14 */ #include "stdafx.h" #define LUCKYNO1 1111 #define LUCKYNO2 2222 #define LUCKYNO3 3333 int main(void) { int no ; printf("宝くじの番号を入力してください>>>"); scanf_s("%d", &no); if (no == LUCKYNO1) printf("おめでとうございます!1等に当たりました\n"); if (no == LUCKYNO2) printf("なんと!2等当選です!\n"); if (no == LUCKYNO3) printf("やったね! 3等です\n"); return 0; } /* 66666 tachibana masayoshi */ /* p53 list 2.14 */ #include "stdafx.h" #define LUCKYNO1 1111 #define LUCKYNO2 2222 #define LUCKYNO3 3333 int main(void) { int no ; マクロ定義(置き換え) コンパイルするときに置き換えられ る printf("宝くじの番号を入力してください>>>"); scanf_s("%d", &no); if (no == LUCKYNO1) printf("おめでとうございます!1等に当たりました\n"); if (no == LUCKYNO2) printf("なんと!2等当選です!\n"); if (no == LUCKYNO3) printf("やったね! 3等です\n"); return 0; } /* 66666 tachibana masayoshi */ /* p53 list 2.14 */ #include "stdafx.h" #define LUCKYNO1 1111 #define LUCKYNO2 2222 #define LUCKYNO3 3333 int main(void) { int no ; マクロ定義(置き換え) 置き換えられたソースコー ド printf("宝くじの番号を入力してください>>>"); scanf_s("%d", &no); if (no == 1111) printf("おめでとうございます!1等に当たりました\n"); if (no == 2222) printf("なんと!2等当選です!\n"); if (no == 3333) printf("やったね! 3等です\n"); return 0; } else 文 if (条件式) 文a; else 文b; 文が1つでもこちらの形式がお薦め if (条件式) { 文a-1; 文a-2; } else { 文b-1; 文b-2; } 多岐条件文 if (条件式1) 文1; else if (条件式2) 文2; else if (条件式3) else if (条件式n) 文n; else 文m; if-elseの使い方 scanf_s("%d",&a); if (a<0) printf("small\n"); else if (a==1) printf("one\n"); else if (a==2) printf("two\n"); else printf("big\n");
© Copyright 2025 ExpyDoc