今天主要学习了C语言中的一些基础语法点,包括三目运算符、逗号表达式、switch语句、do-while循环,以及二维数组的基本操作。
(一)三目运算符
三目运算符在C语言中仅有一个,它是一个简洁的条件判断表达式。
int main()
{
//三目运算符 a < b ? a:b 判断a和b哪个更小
int a, b,max;
while (scanf("%d %d", &a, &b)) {
// 使用三目运算符找出a和b中较小的值,并赋值给max
printf("%d\n", max = a < b ? a:b);
}
return 0;
}
(二)逗号表达式
逗号表达式会从左到右依次执行每个子表达式,整个表达式的值是最后一个子表达式的值。
#include<stdio.h>
int main()
{
int a = 0;
int b = 10;
int c = 10;
// 这是一个逗号表达式:先执行a++,然后判断b==c
// if语句的判断条件是逗号表达式的最后一个子表达式b==c
if (a++, b == c)
{
// 因为b==c为真,所以会执行这里的代码
// a++已经执行,所以a的值是1
printf("%d",a);
}
return 0;
}
#include<stdio.h>
int main()
{
int a = 0;
int c = 9;
int b;
// 逗号表达式:先执行a++,然后执行c,整个表达式的值为最后一个子表达式c的值
// 但赋值运算符=的优先级高于逗号,所以先执行b = a++,b被赋值为a的旧值0
b = a++, c;
printf("b = %d", b); // 输出b=0,因为先执行了b=a++
return 0;
}
(三)switch语句
switch 语句用于根据表达式的值来执行不同的代码块。这里用一个例子展示了如何判断某年2月的天数(考虑闰年)。
#include<stdio.h>
int main()
{
int year;
int mon;
while (scanf("%d %d", &year, &mon))
{
switch (mon)
{
case 2:{
// 判断是否为闰年的表达式:(year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
// 如果是闰年,该表达式为1,否则为0
// 2月的天数为 28 + 0(非闰年)或 28 + 1(闰年)
printf("february,%d have %d days\n", year, 28 + (year % 4 == 0 && year % 100 != 0 || year % 400 == 0));
break;
}
case 3: {
printf("31\n");
break;
}
default: // 用来处理输入有误的情况
printf("error\n");
break;
}
}
return 0;
}
(四)do-while 循环
do-while 循环的特点是,无论while内的表达式是否符合条件,都会先执行一次do内的代码,再进行判断。
#include<stdio.h>
int main()
{
int i = 0;
int r = 0;
do {
// 先执行一次循环体,r被赋值为i的旧值0,然后i自增为1
r = i++;
} while (i <= 10 && i > 0);
// while条件判断:i=1,符合条件,继续循环
// ...循环继续,直到i=11,条件不满足,循环结束
// 最后一轮循环时,i=10,r=9,i++后i=11
// 然后判断while(i<=10 && i>0),条件不满足,循环终止
// 所以r的最终值为10
printf("%d", r); // 最终输出10
}
(五) 二维数组
二维数组是C语言中用于处理表格数据的常见数据结构。
#include<stdio.h>
int main()
{
int i = 0;
int j = 0;
// 声明一个3行4列的二维数组
int arr[3][4];
// 嵌套循环,用于从标准输入读取数据填充二维数组
for (i = 0; i < 3; i++)
{
for (j = 0; j < 4; j++)
{
scanf("%d", &arr[i][j]);
}
}
// 嵌套循环,用于打印二维数组中的所有元素
for (i = 0; i < 3; i++)
{
for (j = 0; j < 4; j++)
{
printf("%d ", arr[i][j]); // 打印每个元素后加一个空格
}
printf("\n"); // 每打印完一行,换行
}
return 0;
}
1225

被折叠的 条评论
为什么被折叠?



