流程控制
条件执行语句
根据给定的表达式的值执行不同的代码路径
循环语句
多次执行相同的代码
跳转语句
在不同的位置继续执行代码
-
continue 跳过外层循环体剩余的部分
-
break 终止外层循环
-
goto 在另一处位置继续执行
-
return 终止外层函数的执行
#pragma mark - mian function
熟悉X- Code快捷键
作业:
1. 输入车牌尾号,以及星期几,空格隔开,用switch语句展示在当天是否限行;
注:
车牌尾号:0 1 2 3 4 5 6 7 8 9
星期:1 2 3 4 5 6 7
要求:2 、 7尾号在星期1限行
3 、 8尾号在星期2限行
4 、 9尾号在星期3限行
5 、 0尾号在星期4限行
6 、 1尾号在星期5限行
#include <stdio.h>
int main(int argc, const char * argv[]) {
int day, number;
printf("Input day of the week and your car's last number: ");
scanf("%d %d",&day, &number);
switch (day) {
case 1:
if (number == 2 || number == 7) {
printf("You can't drive your car today!\n");
} else {
printf("You can drive!\n");
}
break;
case 2:
if (number == 3 || number == 8) {
printf("You can't drive your car today!\n");
} else {
printf("You can drive!\n");
}
break;
case 3:
if (number == 4 || number == 9) {
printf("You can't drive your car today!\n");
} else {
printf("You can drive!\n");
}
break;
case 4:
if (number == 5 || number == 0) {
printf("You can't drive your car today!\n");
} else {
printf("You can drive!\n");
}
break;
case 5:
if (number == 6 || number == 1) {
printf("You can't drive your car today!\n");
} else {
printf("You can drive!\n");
}
break;
default:
printf("It's weekend! You can drive.\n");
break;
}
return 0;
}
2. 已知abc + cba = 1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有的组合;
#include <stdio.h>
int main() {
int i, n = 0;
for (i = 100; i < 1000; i++) {
n = i / 100 + i % 100 / 10 * 10 + i % 100 % 10 * 100;
if (i + n == 1333) {
printf("%d\n", i);
}
}
return 0;
}
3. 打印出如下图形
*****
****
***
**
*
#include <stdio.h>
int main() {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < i; j++) {
printf(" ");
}
for (int j = 0; j < 5 - i; j++) {
printf("*");
}
printf("\n");
}
return 0;
}
4. 水仙花问题
水仙花数:水仙花数是指一个 n 位数 ( n 大于等于 3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1的3次方 + 5的三次方 + 3三次方 = 153)。根据这个要求,打印所有三位数的水仙花数。
#include <stdio.h>
int main() {
int i = 100;
int a, b, c;
int n = 0;
for ( ; i < 1000; i++) {
a = i / 100;
b = i % 100 / 10;
c = i % 10;
n = a * a * a + b * b * b + c * c * c;
if (i == n) {
printf("%d\n", i);
}
}
return 0;
}
5. 打印输出如下图形
*******
*****
***
*
***
*****
*******
方法一: 分段打印
#include <stdio.h>
int main() {
int i, j, k;
for (i = 0; i < 4; i++) {
for (j = 0; j < i; j++) {
printf(" ");
}
for (k = 0; k < 7 - 2 * i; k++) {
printf("*");
}
printf("\n");
}
for (i = 0; i < 3; i++) {
for (j = 0; j < 2 - i; j++) {
printf(" ");
}
for (k = 0; k < i * 2 + 3; k++) {
printf("*");
}
printf("\n");
}
return 0;
}
方法二:使用abs()取绝对值
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main() {
int i, j, k;
for (i = -3; i < 4; i++) {
for (j = 0; j < 3 - abs(i); j++) {
printf(" ");
}
for (k = 0; k < abs(i) * 2 + 1; k++) {
printf("*");
}
printf("\n");
}
return 0;
}