1. switch-case
省略break
实现输入年和月,返回该月的天数的函数。
int days_of_mouth(int year,int mouth){
int days;
switch(mouth){
case 1:
days = 31;
break;
case 2:
days = (year%4==0&&year%100||year%400==0)?29:28;
break;
case 3:
days = 31;
break;
case 4:
days = 30;
break;
case 5:
days = 31;
break;
case 6:
days = 30;
break;
case 7:
days = 31;
break;
case 8:
days = 31;
break;
case 9:
days = 30;
break;
case 10:
days = 31;
break;
case 11:
days = 30;
break;
case 12:
days = 31;
break;
case 1:
days = 31;
break;
default:
days = -1; // 表示错误
}
return days;
}
省略break
:
int days_of_mouth(int year,int mouth){
int days;
switch(mouth){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 2:
days = (year%4==0&&year%100||year%400==0)?29:28;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
days = -1; // 表示错误
}
return days;
}
2. for
嵌套
- 打印
*
组成的n*m
的长方形矩阵
例如:
输入
输出4 5
***** ***** ***** *****
- 打印
*
组成n*n
的三角形
例如:
输入
输出4
* ** *** ****
- 打印
*
组成n*(2*n-1)
的三角形
例如:
输入
输出4
* *** ***** *******
- 打印九九乘法表
- 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后,再去掉不满足条件的排列。 - 输入长度为
n
数组,打印出数组元素两两组合的结果。
3. 无限循环/死循环
无限循环/死循环是指判断条件永远为真的循环。
例如:
while(1){
/* 如果条件为真将重复执行的语句 */
}
或者
for(;;){
/* 如果条件为真将重复执行的语句 */
}
通常程序中要避免出现无限循环/死循环,特殊情况也会适当使用无限循环/死循环,这时可通过方式break
方式退出。