第2章 演算と型

2-1 演算

/* List2-1 */
#include <stdio.h>
int main(void)
{
int vx, vy;

puts("二つの整数を入力してください。");
printf("整数vx:"); scanf("%d", &vx);
printf("整数vy:"); scanf("%d", &vy);

printf("vx + vy = %d\n", vx + vy);
printf("vx - vy = %d\n", vx - vy);
printf("vx * vy = %d\n", vx * vy);
printf("vx / vy = %d\n", vx / vy);
printf("vx %% vy = %d\n", vx % vy);

return (0);
}

剰余(あまり)を求める演算 %

最下位の桁を求める

/* List2-2 */
#include <stdio.h>
int main(void)
{
int no;

printf("整数を入力してください:");
scanf("%d", &no);

printf("最も下の桁は%dです。\n", no%10);

return (0);
}

教科書 演習2-1

下に示すように、二つの整数値を読み込んで、前者の値が後者の値の何%であるかを表示するプログラムを作る。

二つの整数を入力してください。
整数A:54
整数B:84
Aの値はBの値の64%です。

複数の変換指定

/* List2-3 */
#include <stdio.h>
int main(void)
{
int na, nb;

puts("二つの整数を入力してください。");
printf("整数A:"); scanf("%d", &na);
printf("整数B:"); scanf("%d", &nb);

printf("AをBで割ると%dあまり%dです。\n", na/nb, na%nb);

return (0);
}

教科書 演習2-2

下に示すように、二つの整数値を読み込んで、その和と積を表示するプログラムを作る。

二つの整数を入力してください。
整数A:54
整数B:12
それらの和は66で積は648です。

符号の反転 -

/* List2-4 */
#include <stdio.h>
int main(void)
{
int num;

printf("整数を入力してください:");
scanf("%d", &num);

printf("符号を反転した値は%dです。\n", -num);

return (0);
}

2-2 型

/* List2-5 平均値を表示 */
#include <stdio.h>
int main(void)
{
int na, nb;

puts("二つの整数を入力してください。");
printf("整数A:"); scanf("%d", &na);
printf("整数B:"); scanf("%d", &nb);

printf("それらの平均は%dです。\n", (na+nb)/2);

return (0);
}
/* List2-6 整数と浮動小数点数 */
#include <stdio.h>
int main(void)
{
int nx;
double dx;

nx=9.99;
dx=9.99;


printf("nxの値:%d\n", nx);
printf("nx / 2:%d\n", nx/2);

printf("dxの値:%f\n", dx;
printf("dx / 2:%f\n", dx/2);
return (0);
}
/* List2-7 実数の入力 */
#include <stdio.h>
int main(void)
{
double vx, vy;

puts("二つの実数を入力してください。");
printf("実数A:"); scanf("%lf", &vx);
printf("実数B:"); scanf("%lf", &vy);

printf("vx+vy=%f\n", vx+vy);
printf("vx-vy=%f\n", vx-vy);
printf("vx*vy=%f\n", vx*vy);
printf("vx/vy=%f\n", vx/vy);

return (0);
}

演習2-3

下に示すように、読み込んだ実数値をそのまま表示するプログラムを作る。

実数を入力してください:57.3
Aあなたは57.300000と入力しましたね。

整 数型 int

実 数型 double

int 型とdouble型の演算の違い

List2-8 (省略)

演習2-4 (省略)

非 常によく出てくる例:平均を求める場合

/* List2-9 */
#include <stdio.h>
int main(void)
{
int na, nb;

puts("二つの整数を入力してください。");
printf("整数A:"); scanf("%d", &na);
printf("整数B:"); scanf("%ld", &nb);

printf("それらの平均は%fです。\n", (na+nb)/2.0 );

return (0);
}
/* List2-10 */
#include <stdio.h>
int main(void)
{
double na, nb;

puts("二つの整数を入力してください。");
printf("整数A:"); scanf("%d", &na);
printf("整数B:"); scanf("%d", &nb);

printf("それらの平均は%fです。\n", (double)(na+nb)/2);

return (0);
}

演習2-5

下に示すように、二つの整数値を読み込んで、前者が後者の何%であるかを実数で表示するプログラムを作る。

二つの整数を入力してください。
整数A:54
整数B:84
Aの値はBの値の64.285714%です。

変 換指定

/* List2-11 */
#include <stdio.h>
int main(void)
{
int na, nb, nc;
int num;
double ave;

puts("三つの整数を入力してください。");
printf("整数A:"); scanf("%d", &na);
printf("整数B:"); scanf("%d", &nb);
printf("整数C:"); scanf("%d", &nc);

sum=na+nb+nc;
ave=(double)sum/3;

printf("それらの合計は%5dです。\n", sum);
printf("それらの平均は%5.1fです。\n", ave);

return (0);
}

List2-12 (省略)

演習2-6

下に示すように、身長を整数値として読み込んで、標準体重を実数で表示するプログラムを作る。
標準体重は、(身長-100)×0.9によって求め、その小数点以下は、1桁だけ表示すること。

身長を入力してください:175
標準体重は67.5です。

課題2

次の動作をするプログラムを作る

  1. 教科書の演習2-5
  2. 教科書の演習2-6

次回予告

教科書 第2章 補足&演習問題