前回の練習問題の解答例
#include <stdio.h>
int main(void)
{
printf("こんにちは世界\n");
return 0;
}
「こんにちは世界」だけが全角文字で、他は全て半角文字である。
字下げにはTabキーを使う。
何らかの事情でTabキーを使えない場合は、半角スペースを何個か入力すればよい。
その場合、「半角スペース○個で字下げ1個分」と決め、字下げの位置を揃えることが大切である。
整数の表示
printfで整数を表示してみよう。
#include <stdio.h>
int main(void)
{
printf("今日は%d月%d日です。\n",10,6);
return 0;
}
printfの文中に%dが2つある。実行の時には、%dに右の数値が順に当てはめられて、「今日は10月6日です」と表示される。
日本語(全角文字)が混じる時は、全角と半角の区別に注意すること。%dと\nは半角である。
加算と減算
足し算と引き算を計算する。
#include <stdio.h>
int main(void)
{
printf("10たす6は%dです。\n",10+6);
printf("10ひく6は%dです。\n",10-6);
return 0;
}
%dに計算結果が当てはめられて表示される。
乗算と除算
掛け算と割り算を計算する。
#include <stdio.h>
int main(void)
{
printf("10かける6は%dです。\n",10*6);
printf("10わる6の商は%dです。\n",10/6);
return 0;
}
乗算は「*」、除算は「/」で表す。
除算の結果は商のみであり、余りは計算されない。
剰余
割り算の余り(剰余)を計算する。
#include <stdio.h>
int main(void)
{
printf("10わる6の余りは%dです。\n",10%6);
return 0;
}
%は剰余を計算する記号である(商は求めず剰余だけを計算する点に注意すべし)。
なお、数値を当てはめるための%dは%を含んでいるが、剰余とは無関係である。
演算子まとめ
上に出てきた計算の記号を演算子という。
整数の演算子
演算 | 演算子 |
加算 | + |
減算 | - |
乗算 | * |
除算の商 | / |
剰余 | % |
演算順序
演算順序は、基本的には数学と同じ。
ただし、整数の除算が商だけを計算する点には注意が必要である。
- 複数の演算子がある場合は、左から順に実行される。
- ただし、乗算・除算が加算・減算より優先される。
- ただし、丸括弧()がある場合は、丸括弧の中が優先される。
左から順の例
#include <stdio.h>
int main(void)
{
printf("7+2-4の答は%dとなります。\n",7+2-4);
return 0;
}
答は 5 となる。
7+2-4 が一度に計算されるのではなく、7+2 が計算された後で 9-4 が計算されている。
除算を含む例
#include <stdio.h>
int main(void)
{
printf("7*2/4の答は%dとなります。\n",7*2/4);
printf("7/4*2の答は%dとなります。\n",7/4*2);
printf("2/4*7の答は%dとなります。\n",2/4*7);
return 0;
}
数学ならば、7*2/4 と 7/4*2 と 2/4*7 の答はどれも3.5である。
しかし、C言語では、整数の除算は商だけを計算するので、計算順序により答が異なる。
7*2/4 は、まず 7*2 が計算され、次に 14/4 が計算されるので、答は 3 となる。
7/4*2 は、まず 7/4 が計算され、次に 1*2 が計算されるので、答は 2 となる。
2/4*7 は、まず 2/4 が計算され、次に 0*7 が計算されるので、答は 0 となる。
除算の部分が、それぞれ 14/4=3、7/4=1、2/4=0 と商だけを求めていることに注意しなければならない。
乗算が優先される例
#include <stdio.h>
int main(void)
{
printf("7+2*4の答は%dとなります。\n",7+2*4);
return 0;
}
2*4 が先に計算されるので、7+8 で答は 15 となる。
丸括弧内が優先される例
#include <stdio.h>
int main(void)
{
printf("(7+2)*4の答は%dとなります。\n",(7+2)*4);
return 0;
}
7+2 が先に計算されるので、9*4 で答は 36 となる。
練習問題
80円のみかんを12個と180円のりんごを4個買った時の合計金額を計算し「合計金額は○○円です。」と表示するプログラムを作りなさい。