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;
}