四則演算 +, -, *, /, %
代表的な算術演算子。基本的なところも書いておこう。
#include <stdio.h>
int main(void){
int a=20,b=3;
printf("加算(int) %d+%d = %d\n",a,b,a+b);
printf("減算(int) %d-%d = %d\n",a,b,a-b);
printf("乗算(int) %d*%d = %d\n",a,b,a*b);
printf("除算(int) %d/%d = %d\n",a,b,a/b);
printf("剰余(int) %d%c%d = %d\n",a,'%',b,a%b);
printf("乗算(float) %d/%d = %f\n",a,b,(float)a/b);
return 0;
}
|
%の表示で少し悩んでしまった。普通はどうやるのかな?
加算(int) 20+3 = 23
減算(int) 20-3 = 17
乗算(int) 20*3 = 60
除算(int) 20/3 = 6
剰余(int) 20%3 = 2
乗算(float) 20/3 = 6.666667
|
代入演算子 =, +=, -=, *=, /=, %=
算数、数学のイコールとは扱いが違うので、プログラム初心者は違和感を感じるところ。
#include <stdio.h>
int main(void){
int a=20,b=3;
printf("まず「a」には「%d」が入っている\n",a);
printf("代入 a=%d aは %d になる\n",b,a=b);
a=20;
printf("加算して代入 a+=%d aは %d になる\n",b,a+=b);
a=20;
printf("減算して代入 a-=%d aは %d になる\n",b,a-=b);
a=20;
printf("乗算して代入 a*=%d aは %d になる\n",b,a*=b);
a=20;
printf("減算して代入 a/=%d aは %d になる\n",b,a/=b);
a=20;
printf("余りを代入 a%c=%d aは %d になる\n",'%',b,a%=b);
return 0;
}
|
代入演算子は記述の手間が減るのでよく使う。
まず「a」には「20」が入っている
代入 a=3 aは 3 になる
加算して代入 a+=3 aは 23 になる
減算して代入 a-=3 aは 17 になる
乗算して代入 a*=3 aは 60 になる
減算して代入 a/=3 aは 6 になる
余りを代入 a%=3 aは 2 になる
|
比較演算子 ==, !=, >, >=, <, <=
ifやfor文で必須の比較演算子。
#include <stdio.h>
int main(void){
int a=10,b=10;
printf("a=%d\tb=%d\n\n",a,b);
if(a==b) printf("a==b\tYES\n");
else printf("a==b\tNO\n");
if(a!=b) printf("a!=b\tYES\n");
else printf("a!=b\tNO\n");
if(a>b) printf("a>b \tYES\n");
else printf("a>b \tNO\n");
if(a>=b) printf("a>=b\tYES\n");
else printf("a>=b\tNO\n");
if(a<b) printf("a<b \tYES\n");
else printf("a<b \tNO\n");
if(a<=b) printf("a<=b\tYES\n");
else printf("a<=b\tNO\n");
return 0;
}
|
aとbに好きな整数を入れて実行すると、比較演算子で大きさを比較をして結果を表示する。
a=10 b=10
a==b YES
a!=b NO
a>b NO
a>=b YES
a<b NO
a<=b YES
|
論理演算子 &&, ||, !
やや複雑な条件を設定するときに使う。
#include <stdio.h>
int main(void){
int num = 0;
/*論理積(AND)共に真なら真*/
if(num>=0 && num<=12)printf("numは0から12の範囲\n");
else printf("numは0から12の範囲ではない\n");
/*論理和(OR)いずれか一方が真なら真*/
if(num<0 || num>12)printf("numは0から12の範囲ではない\n");
else printf("numは0から12の範囲\n");
/*論理否定(NOT)真の時に偽*/
if(! num)printf("numは0です\n");
else printf("numは0以外です\n");
return 0;
}
|
&&(AND)と||(OR)を同じように使ってみた。!(NOT)は何に使うの?という感じだが、この場合0を判定するのに使っている。
numは0から12の範囲
numは0から12の範囲
numは0です
|
C言語 ANSI C89 Meadow & MinGW GCC 目次はこちら