C语言循环分支结构深度总结实践
1、 C语言中循环和分支的应用尤为广泛,也存在很多不可忽视的细节,例如对于初学者来说选择分支中最容易分不清楚的就是悬空else与if配对的问题,分析不清楚代码之间的关系就无法写出相应的程序代码,也不利于后期代码修改。没有太多捷径可走,只有多练多敲,多思考才能熟练掌握。另外循环结构的应用更是为我们解决冗杂的问题提供了快捷的方法,但在平时的练习也踩过很多坑,碰过很多雷。曾在一个while循环程序中发现原来输入的数据是存在空白缓冲区的,在写一些程序时要考虑空白缓冲区的影响,不然程序运行中就会存在bug。循环分支让我们知道细节决定成败,熟能生巧的程序铁律。
2、再分享几个简单有趣的代码实例,可以参考学习强化循环分支结构:第一个是从字符串两端向中间的覆盖输出显示,第二个是二分查找算法的数据查找,两个都充分体现了循环分支的使用和细节。
代码1:
#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>
#include<string.h>
int main()
{
char arr[] = { "欢迎来到我的世界, 风雪有你!!!" };
char arr1[] = { "****" };
int left=0;
int right=strlen(arr)-1;//计算字符串最右边的下标
while (left <=right)
{
arr1[left] = arr[left];//左覆盖
arr1[right] = arr[right];//右覆盖
printf("%s\n", arr1);
Sleep(100);
system("cls");
left++;
right--;
}
printf("%s\n", arr1);
return 0;
}
代码2:
#include<stdio.h>
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int sz = sizeof(arr) / sizeof(arr[0]);//计算数组元素长度
int right=sz-1;//计算最右边元素下标
int left=0;
int k = 6;
while (left <= right){ int mid = (right + left) / 2;//找中间下标 if (arr[mid] < k) { left = mid + 1; } else if (arr[mid] > k) { right = mid - 1; } else { printf("终于找到了,下标是%d\n", mid); break; }}if (left > right){ printf("找不到数据\n");}return 0;
}
©著作权归作者所有:来自51CTO博客作者很菜的Jason的原创作品,如需转载,请注明出处,否则将追究法律责任更多相关文章
- git常用命令
- 10 个Linux Awk文本处理经典案例
- shell 双多分支if条件句语法
- 太方便了!IntelliJ IDEA 中如何直接使用 Git 呢?
- 学习C语言第四天(循环语句练习题)
- 航电oj2016-2017 参考代码
- 我的第20个代码
- shell单分支if条件句语法详解与生产案例详解
- 令我匪夷所思的“bug”