目录
一、选择结构程序设计
二、 循环结构程序设计
一、选择结构程序设计
我们在生活中经常会面临着各种选择,不同的选择有着不同的结果,c语言有两种选择语句:if语句和switch语句。
if语句
if(表达式 )语句;表达式为真时,执行语句,为假时,不执行。
f-else
if (表达式)语句;
else 语句2;
if - else if - else
if(表达式1)语句1; else if(表达式2)语句2; ------else if(表达式m)语句m; else 语句n;
应用举例,实现以上函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14#include<stdio.h> int main() { int x = 0; int y = 0; scanf("%d", &x); if (x < 0) y = -1; else if (x == 0) y = 0; else y = 1; printf("%d", y); return 0; }
悬空else :else总是和它上面距离最近的没有匹配的if语句相匹配
此代码的功能即实现上述函数,悬空else的匹配如下
注意:if(表达式);,否则即视为if(表达式)在进行判断真假之后,如果为真,执行了空语句(;)。 判断是否相等使用==,使用=为赋值操作。举例:
1
2
3
4
5
6
7
8#include<stdio.h> int main() { int a = 20; if (a = 1) printf("%d", a); return 0; }
结果:打印1 分析,if(a=1)中不是判断a和1相等,而是将a赋值成为了1。
switch语句 :实现多分支
switch(表达式) { case 1:语句1;break; case 2:语句2;break; --- default:默认语句块; }
表达式的值没有一个可以匹配case语句,执行default。
switch语句的break作用:使程序跳出switch,一个break只能作用于包含这个break的switc内
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17#include<stdio.h> int main() { int n = 1, m = 2; switch (n) { case 1:n++;switch (m) { case 1:m--; break; case 2:m = 4; case 3:m++; break; } default:n++; } printf("m=%d,n=%d", m, n); return 0; }
二、 循环结构程序设计
while语句
while(表达式) 语句;表达式为真时,执行语句,为假时结束。
代码功能:一到一百累加求和
1
2
3
4
5
6
7
8
9
10
11
12
13#include<stdio.h> int main() { int i = 1; int sum = 0; while (i <= 100) { sum = sum + i;//sum累加求和 1+2+3+...+100 i++; } printf("%d", sum); return 0; }
do-while:先执行do里面的循环体,后进行while循环的判断
1
2
3
4
5
6
7
8
9
10
11
12
13#include<stdio.h> int main() { int i = 0; int sum = 0; do { sum = sum + i;//sum累加求和 1+2+3+...+100 i++; } while (i <= 100); printf("%d", sum); return 0; }
for循环
1
2
3
4
5
6
7
8
9
10
11
12#include<stdio.h> int main() { int i = 0; int sum = 0; for (i = 0; i <= 100; i++) { sum = sum + i;//sum累加求和 1+2+3+...+100 } printf("%d", sum); return 0; }
注意;赋值还是判断
循环里面的break和continue
break:循环体内结束本层循环。switch内跳出本层switch语句
continue:只能出现在循环体内 ,作用是提前结束本轮循环,放置在continue后面的语句被跳过,返回到循环控制部分。
练习:1,求n的阶乘
1
2
3
4
5
6
7
8
9
10
11
12#include <stdio.h> int main() { int i = 1; int n = 0; int ans = 1; scanf("%d", &n); for (i = 1; i <= n; i++) ans = ans * i; printf("%d", ans); return 0; }
2.冒泡排序:对于一组杂乱无章的数据进行排序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29#include <stdio.h> int main() { int arr[10] = { 1,2,3,4,3,5,6,7,8,9 }; int sz = sizeof(arr) / sizeof(arr[0]); int i = 0; int j = 0; for (i = 0; i < sz - 1; i++) { int flag = 1; for (j = 0; j < sz - 1 - i; j++) { int t = 0; if (arr[j] > arr[j + 1]) { t = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = t; flag = 0; } } if (flag == 1) break; } for (i = 0; i < sz; i++) { printf("%d", arr[i]); } return 0; }
3.二分查找:对一排列有序的数组进行数据的查找
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33#include<stdio.h> int main() { int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; int n = 0; printf("输入找的数字"); scanf("%d", &n); int left = 0; int sz = sizeof(arr) / sizeof(arr[0]); int right = sz - 1; while (left <= right) { int mid = (left + right) / 2; if (arr[mid] == n) { printf("找到了,下标是%d", mid); break; } if (arr[mid] < n) { left = mid + 1; } if (arr[mid] > n) { right = mid - 1; } } if (left > right) printf("找不到"); return 0; }
最后
以上就是老迟到溪流最近收集整理的关于c语言入门—选择循环结构程序设计的全部内容,更多相关c语言入门—选择循环结构程序设计内容请搜索靠谱客的其他文章。
发表评论 取消回复