我是靠谱客的博主 老迟到溪流,这篇文章主要介绍c语言入门—选择循环结构程序设计,现在分享给大家,希望可以做个参考。

目录

一、选择结构程序设计 

​  二、  循环结构程序设计                               


一、选择结构程序设计 

我们在生活中经常会面临着各种选择,不同的选择有着不同的结果,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语言入门—选择循环结构程序设计内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部