目录
算数(数学)运算符
一元(目)算术运算符
只需要一个操作数就可以完成语义。(++、--)
a++ a--:先使用后操作
++a --a:先操作后使用
a++ = ++a =a = a + 1;
a++ 和++a只有参与运算才不一样
b = a++:b = a;a = a + 1;
b = ++a:a = a + 1;b = a;
++a和a++不参与运算:
#include <stdio.h>
void main() {
int a = 1;
int b = 1;
a++;
++b;
printf("%d\n", a);
printf("%d", b);
}
运行结果:
a++和++a参与运算:
#include <stdio.h>
void main() {
int a = 1;
int b = 1;
a = a++;
b = ++b;
printf("%d\n", a);
printf("%d", b);
}
运行结果:
二元(目)算术运算符
需要两个操作数才能完成语义。(+、-、*、/、%)
+:num1 + num2;
-:num1 - num2;
*:num1 * num2;
/:num1 / num2; 如果除号两边都是实型,那么最后得到的是精确计算的商;如果有一边是实型,结果还是精确计算的商(类型自动提升转换);如果两边都是整型,结果是整型的商(不能除尽,后边的不要去除)。
%:num1 % num2;
#include <stdio.h>
void main() {
int a = 10, b = 3;
double a1 = 10.0;
printf("%d\n", (a / b));
printf("%lf\n", (a1 /b));
printf("%d", (a % b));
}
运行结果
赋值运算符
x += y : x = x + y;
x -= y : x = x - y;
x *= y : x = x * y;
x /= y : x = x / y;
x %= y : x = x % y;
#include <stdio.h>
void main() {
int a = 10, b = 2;
printf("%d\n", a + b);
printf("%d\n", a - b);
printf("%d\n", a * b);
printf("%d\n", a / b);
运行结果
sizeof运算符
使用sizeof运算符可以获得数据类型占用内存空间的大小;
其一般形式为:sizeof(type_name);
sizeof运算符的结果以字节为单位显示。
#include <stdio.h>
void main() {
printf("%d\n", sizeof(int));
printf("%d\n", sizeof(float));
printf("%d", sizeof(double));
}
关系运算符
>、>=、<、<=、!=、==
关系运算符返回结果为‘真’或‘假’;
真:所有的非0(1)
假:0
两边得是兼容的运算符(字符串和很多都不能兼容);
逻辑运算符
用于连接一个或多个条件,判断这些条件是否成立。 (&&(与)、||(或)、!(非))
逻辑运算符结果只有“真”或“假”
&&:(一假即假)
0 && 0 =0;
0 && 1 =0;
1 && 0 = 1;
1 && 1 = 1;
||:(一真即真)
0 || 0 = 0;
0 || 1 = 1;
1 || 0 = 1;
1 || 1 = 1;
!:(反)
! 0 = 1;
! 1 = 0;
例题1
从键盘输入一个字符,判断是否是小写字母,如果是小写字母输出是“小写字母”,如果不是小写字母输出“非法字符”。
#include <stdio.h>
void main() {
char c;
printf("请你从键盘输入一个字符:");
scanf("%c", &c);
if(c >= 'a' && c <= 'z') {
printf("小写字母");
} else {
printf("非法字符");
}
}
例题2
接受用户输入的三种商品的价格,如果购买的三种商品中至少有一种商品的价格大于50或者三种商品的总额大于100,则折扣率为15%,否则折扣率为0,计算并显示用户应付的钱数。
#include <stdio.h>
void main() {
int p1, p2, p3;
double sum;
printf("请输入三个商品的价格:");
scanf("%d %d %d", &p1, &p2, &p3);
sum = p1 + p2 + p3;
if((p1 >= 50) || (p2 >= 50) || (p3 >= 50) ||(sum >= 100)) {
sum *= 0.85;
}
printf("你应付的价格是:%5.2lf", sum);
}
例题3
从键盘输入一个5位的正整数,判断它是不是一个回文数。(回文数:万位 = 个位,千位 = 十位。)
#include <stdio.h>
void main() {
int num;
int g, s, q, w;
scanf("%d", &num);
g = num % 10;
s = (num % 100) /10;
q = (num % 10000) / 1000;
w = num / 10000;
printf("%d %d %d %d\n", g, s, q, w);
if(g == w && s == q) {
printf("回文数");
} else {
printf("不是回文数");
}
}