其实已经学习了几天了,今天突发奇想,想用博客的形式来记录一下自己的成长历程,等到学成之时回头看看自己的这一路艰辛,也算是人生的一大乐事吧。
学习书本《明解C语言——入门篇》
2023.1.4
if语句
1.光一个if的形式

例题3-1
//判断是否被5整除 例题3-1
int main()
{
int a;
printf("请输入一个整数:");
scanf("%d", &a);
if ((a % 5) == 0)
printf("可以被5整除");
return 0;
}
2.if-else形式

例题3-3
//判断是否被5整除 例题3-3 就是上面例题的改版
int main()
{
int a;
puts("请输入一个整数");
scanf("%d", &a);
if ((a % 5) == 0)
printf("可以被5整除");
else
printf("不可以被5整数");
return 0;
}
例题3-4
//判断奇偶 例题3-4
int main()
{
int a;
printf("请输入一个整数:");
scanf("%d", &a);
if ((a % 2) ==0)
printf("该数为偶数。");
else
printf("该数为奇数。");
return 0;
}
注意!
如果只有当某条件成立时才进行处理,则使用不加else的if语句;而如果是根据某条件的成立与否进行不同的处理,则使用带有else的if语句。
练习3-1
//练习3-1 约数问题
int main()
{
int a;
int b;
puts("请输入两个整数");
printf("整数x:");
scanf("%d", &a);
printf("整数y:");
scanf("%d", &b);
if ((a % b) == 0)
printf("整数y是整数x的约数。");
else
printf("整数y不是整数x的约数。");
return 0;
}
例题3-8
//判断个位数是否为5 例题3-8
int main()
{
int a;
printf("请输入一个整数:");
scanf("%d", &a);
if ((a % 10) == 5)
printf("该数的个位为5。");
else
printf("该数的个位不为5。");
return 0;
}
3.三个分支(嵌套的if语句)
例题3-9
//判断整数符号 例题3-9
int main()
{
int a;
printf("请输入一个整数:");
scanf("%d", &a);
if (a == 0)
printf("该数为0。");
else if (a > 0)
printf("该数为正数。");
else
printf("该数为负数。");
return 0;
}
练习3-4
//判断大小 练习3-4
int main()
{
int a;
int b;
puts("请输入两个整数。");
printf("整数x:");
scanf("%d", &a);
printf("整数y:");
scanf("%d", &b);
if (a == b)
printf("两数相等。");
else if (a > b)
printf("x大于y。");
else
printf("x小于y。");
return 0;
}
例题3-10
//输入整数值为正,则判断该值的奇偶性并显示 例题3-10
int main()
{
int a;
printf("请输入一个正整数:");
scanf("%d", &a);
if (a > 0)
if (a % 2 == 0)
printf("该值为偶数。");
else
printf("该值为奇数。");
else
printf("该值不为正整数。\a\a\a");
return 0;
}

4.判断
练习3-5
//练习3-5 编写一段程序 确定相等运算符和关系 运算符的运算结果是0和1
int main()
{
int a = 2;
int b = 3;
printf("%d\n", a > b);
printf("%d\n", a < b);
printf("%d\n", a == b);
printf("%d\n", a != b);
return 0;
}
5.计算较大值
例题3-12(引入第三个变量)
//显示输入两个整数中较大的一个 例题3-12
int main()
{
int a;
int b;
int max;
puts("请输入两个整数。");
printf("整数x:");
scanf("%d", &a);
printf("整数y:");
scanf("%d", &b);
if (a > b)
max = a;
else
max = b;
printf("%d", max);
return 0;
}
例题3-13(比较三个变量的最大值)
//比较三个数的大小 例题3-13
int main()
{
int a;
int b;
int c;
int max;
puts("请输入三个整数。");
printf("整数x:");
scanf("%d", &a);
printf("整数y:");
scanf("%d", &b);
printf("整数z:");
scanf("%d", &c);
max = a;
if (b > max)
max = b;
if (c > max)
max = c;
printf("%d", max);
return 0;
}
练习3-6
//计算三个数的最小值 练习3-6
int main()
{
int a;
int b;
int c;
int min;
puts("请输入三个整数。");
printf("整数x:");
scanf("%d", &a);
printf("整数y:");
scanf("%d", &b);
printf("整数z:");
scanf("%d", &c);
min = a;
if (b < min)
min = b;
if (c < min)
min = c;
printf("%d", min);
return 0;
}
练习3-7
//条件运算符 计算四个整数中的较大值
int main()
{
int a;
int b;
int c;
int d;
int max;
puts("请输入两个整数。");
printf("整数x:");
scanf("%d", &a);
printf("整数y:");
scanf("%d", &b);
printf("整数z:");
scanf("%d", &c);
printf("整数w:");
scanf("%d", &d);
max = a;
if (b > max)
max = b;
if (c > max)
max = c;
if (d > max)
max = d;
printf("%d", max);
return 0;
}
6.条件运算符
条件运算符 a?b:c 如果a不为0,则结果是b的值,否则结果是c的值。
只有条件运算符属于三目运算符!!!
例题3-14
//条件运算符 计算两个整数中的较大值 例题3-14
int main()
{
int a;
int b;
int max;
puts("请输入两个整数。");
printf("整数x:");
scanf("%d", &a);
printf("整数y:");
scanf("%d", &b);
max=(a > b) ? a : b;
printf("较大的数是:%d", max);
return 0;
}
例题3-15
//计算两个整数的差值并显示(条件运算符)
int main()
{
int a;
int b;
puts("请输入两个整数。");
printf("整数x:");
scanf("%d", &a);
printf("整数y:");
scanf("%d", &b);
printf("它们的差是:%d", (a > b) ? (a - b) : (b - a));
return 0;
}
※练习3-9
//计算三个数的最小值
int main()
{
int a;
int b;
int c;
int min;
puts("请输入三个整数。");
printf("整数x:");
scanf("%d", &a);
printf("整数y:");
scanf("%d", &b);
printf("整数z:");
scanf("%d", &c);
min = a;
(b < min) ? (min = b) : min;
(c < min) ? (min = c) : min;
printf("%d", min);
return 0;
}
2023.1.5
7.复合语句
例题3-16
//输入两个整数,显示最大值与最小值 例题3-16
int main()
{
int a;
int b;
int max;
int min;
puts("请输入两个整数。");
printf("整数x:");
scanf("%d", &a);
printf("整数y:");
scanf("%d", &b);
if (a > b) {
max = a;
min = b;
}
else {
max = b;
min = a;
}
printf("较大值为%d", max);
printf("较小值为%d", min);
return 0;
}
※在大括号内并排书写的语句或是声明(声明放在首位)称为复合语句或者程序块(声明是c++或c99支持的)


※复合语句在结构上被看为单一的语句
尽量在写if-else语句时加上{}
8.逻辑运算符

例题3-17
//显示所输入月份属于什么季节 例题3-17
int main()
{
int a;
printf("请输入月份:");
scanf("%d", &a);
if (a >= 3 && a <= 5)
printf("该月份为春季。");
else if (a >= 6 && a <= 8)
printf("该月份为夏季。");
else if (a >= 9 && a <= 11)
printf("该月份为秋季。");
else if (a == 12 || a == 1 || a == 2)
printf("该月份为冬季。");
else
printf("输入的数字无效!");
return 0;
}

9.短路求值
在仅根据左操作符的判断结果就可知逻辑表达式的判断结果的情况下,不会对右操作数进行判断,这就称为短路求值。
练习3-10
//练习3-10 判断三个数的相等情况
int main()
{
int a;
int b;
int c;
puts("请输入三个整数。");
printf("整数x:");
scanf("%d", &a);
printf("整数y:");
scanf("%d", &b);
printf("整数z:");
scanf("%d", &c);
if (a == b && b == c && a == c)
printf("三个整数相等。");
else if (a == b || a == c || b == c)
printf("有两个整数相等。");
else if (a != b && a != c && b != c)
printf("没有整数相等。");
return 0;
}
练习3-11
//练习3-11 判断差值
int main()
{
int a;
int b;
puts("请输入两个整数。");
printf("整数x:");
scanf("%d", &a);
printf("整数y:");
scanf("%d", &b);
if (a >= b && (a - b) <= 10)
printf("它们的差小于等于10。");
else if (a >= b && (a - b) >= 11)
printf("它们的差大于等于11。");
else if (b > a && (b - a) <= 10)
printf("它们的差小于等于10。");
else if (b > a && (b - a) >= 11)
printf("它们的差大于等于11。");
return 0;
}
switch语句
1.switch语句和break语句

括号内的表达式必须为整数类型(图3-13)

switch(整形表达式) 语句项:case语句
{ case 整型常量表达式:
语句项: 语句;
} break;
例题3-19
//显示所输入整数所除于3的余数 例题3-19
int main()
{
int a;
printf("请输入一个整数:");
scanf("%d", &a);
switch(a%3)
{
case 0:
printf("该数能被3整除。");
break;
case 1:
printf("该数除3余1。");
break;
case 2:
printf("该数除3余2。");
break;
default:
printf("错误。");
break;
}
return 0;
}
2.复杂的switch语句
例题3-20
//确定switch语句动作的程序 例题3-20
int main()
{
int a;
printf("输入整数:");
scanf("%d", &a);
switch (a)
{
case 1:
puts("A");
puts("B");
break;
case 2:
puts("C");
case 5:
puts("D");
break;
case 6:
case 7:
puts("E");
break;
default:
puts("F");
break;
}
return 0;
}

没有“break”语句的时候程序会继续往下走直到看到“break”
标签顺序改变的时候,结果也可能发生变化,所以注意标签顺序的书写
※switch语句也可以嵌套
3.switch语句和if语句
通过单一表达式来控制程序流程分支的时候,使用switch语句通常比if语句好用
练习3-12
//对例题3-4进行修改 练习3-12
int main()
{
int x;
printf("请输入一个整数:");
scanf("%d", &x);
switch (x % 2)
{
case 1:
puts("该整数是奇数");
break;
case 0:
puts("该整数是偶数");
break;
}
return 0;
}
练习3-13
//对例题3-17修改 练习3-13
int main()
{
int a;
printf("请输入月份:");
scanf("%d", &a);
switch (a)
{
case 3:
case 4:
case 5:
puts("春季。");
break;
case 6:
case 7:
case 8:
puts("夏季。");
break;
case 9:
case 10:
case 11:
puts("秋季。");
break;
case 12:
case 1:
case 2:
puts("冬季。");
break;
}
return 0;
}
收工大吉!!!
2023年1月5日19点44分