一、 C語言中循環和分支的應用尤其普遍,也存在不少不可忽視的細節,例如對於初學者來講選擇分支中最容易分不清楚的就是懸空else與if配對的問題,分析不清楚代碼之間的關係就沒法寫出相應的程序代碼,也不利於後期代碼修改。沒有太多捷徑可走,只有多練多敲,多思考才能熟練掌握。另外循環結構的應用更是爲咱們解決冗雜的問題提供了快捷的方法,但在平時的練習也踩過不少坑,碰過不少雷。曾在一個while循環程序中發現原來輸入的數據是存在空白緩衝區的,在寫一些程序時要考慮空白緩衝區的影響,否則程序運行中就會存在bug。循環分支讓咱們知道細節決定成敗,熟能生巧的程序鐵律。
二、再分享幾個簡單有趣的代碼實例,能夠參考學習強化循環分支結構:第一個是從字符串兩端向中間的覆蓋輸出顯示,第二個是二分查找算法的數據查找,兩個都充分體現了循環分支的使用和細節。
代碼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;
}ide