プログラムの作成と実行3(スライド) (6/20修正版)

プログラムの作成と実行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");