- if語句:if(表達(dá)式)
// 括號里面放一個(gè)表達(dá)式
?//表達(dá)式的結(jié)果如果為非零,表達(dá)式為真
? //表達(dá)式結(jié)果如果為零,表達(dá)式為假
if語句可以單支,雙支,多分支,還可以用大括號括起來之后執(zhí)行多條語句,下圖為雙分支示例:
if(表達(dá)式) 語句;//每一個(gè)分號隔開的叫做一條語句 else 語句;//注意!無大括號直接寫只能執(zhí)行一條語句
下圖為多分支示例:
if(表達(dá)式)//第一條語句也沒有分號 語句; else if(表達(dá)式); 語句;//注意else if語句結(jié)束要有分號 else if(表達(dá)式); 語句: //此處省略若干個(gè)else if else//此處便是最后一條語句了,無分號 語句;
下圖為執(zhí)行多條語句的示例:
if(表達(dá)式) { 語句01; 語句02; //.... } //下面的可以單支,雙支也可以多分支
懸空else問題
示例:
#include <stdio.h> int main() { int a = 0; int b = 2; if(a == 1) if (b == 2) printf("hehe\n"); else printf("haha\n"); return 0; }
以上這段代碼的打印結(jié)果大多數(shù)人可能第一眼看到之后,就會說屏幕上會打印 :haha,因?yàn)樗麄儠J(rèn)為:第六行的表達(dá)式判斷之后,a是不等于1的,故表達(dá)式為假,執(zhí)行else后面的語句。但是其實(shí)不然,else只于離他最近的那個(gè) if 匹配,因此以上的代碼的真實(shí)打印結(jié)果為:不打印。
所以好的代碼書寫風(fēng)格可以大大減少不必要的誤會
//正確的書寫方式 if(a == 1) if(b == 2) printf("hehe\n"); else printf("haha\n");
- switch語句
switch語句也是一種分支語句,多用于多分支的情況
switch語句的語法格式:
switch(整形表達(dá)式)//后面無需再放分號 { case (整形常量表達(dá)式): 語句; break; //break是決定了程序走到該位置之后還要不要往下走 //有break直接跳出switch //無break繼續(xù)往下執(zhí)行其他的case語句 //直至遇到break為止 }
要注意的細(xì)節(jié):
(以代碼為例)
#include <stdio.h> int main() { int day = 0; scanf("%d",&day); switch (day) { case 1: //以下略 } return 0; }
要注意的細(xì)節(jié)
(對照上圖)
- 如果將第4行的代碼改成:float day,那么改程序?qū)o法繼續(xù)執(zhí)行,因?yàn)檫@樣改完之后原來的day就被改為了浮點(diǎn)型,day傳到第6行之后還是一個(gè)浮點(diǎn)型,而使用switch的語法明確規(guī)定:switch(),括號中要寫整型常量表達(dá)式,必須為整型和常量
- 還有,如果在switch語句執(zhí)行開頭提前定義好一個(gè)整形變量,并給它賦值,之后再把這個(gè)變量放入case 的后面,此程序也是無法執(zhí)行的。下圖示例:
int n = 1; switch (/*此處略*/) { case n: //上面的操作一定會引起編譯器的報(bào)錯(cuò) //因?yàn)閚本質(zhì)上還是屬于是一個(gè)變量 //case后根據(jù)語法規(guī)范必須為整形且常量 }
- 另外,如果case后面跟的滿足整型,常量,并且是一個(gè)表達(dá)式的話,也是可以執(zhí)行的下去的‘
//示例 case 1+0: //這樣寫也是可以編譯的
- 最后就是,如果case后面跟的是一個(gè)字符型也是能夠編譯過去的,因?yàn)樽址彩菍儆谡蔚囊环N,字符以ascii碼的形式儲存在計(jì)算機(jī)之中的。
switch中的的default子句:
此子句適用于處理那些所有分支情況之外的輸入
示例:
//多余的代碼略寫 int day = 0; scanf("%d".&day); switch(day) { case 1: //case內(nèi)的語句和break略寫 case 2: case 3: case 4: case 5: case 6: case 7: default: printf("輸入錯(cuò)誤\n"); break; }
如上圖所示,case語句之中只給出了七個(gè)分支來選擇,但是如果輸入者一不小心輸入錯(cuò)誤,沒有輸入1至7中的數(shù)(比如輸入了一個(gè)9),那么程序最后就會不編譯,為防止出現(xiàn)這種情況的發(fā)生,所以專門設(shè)計(jì)了一個(gè)default子句用來供那些別的錯(cuò)誤情況進(jìn)入,以給予輸入者一個(gè)錯(cuò)誤提示。另外,default子句不管放在開頭還是結(jié)尾都沒問題,但是我們一般默認(rèn)放置句尾。
循環(huán)語句:循環(huán)結(jié)構(gòu)分為三種:while循環(huán),for循環(huán),do while循環(huán)
- while循環(huán)語法結(jié)構(gòu)
while(//表達(dá)式,即判斷循環(huán)執(zhí)行的條件) { 循環(huán)語句; }
上面的表達(dá)式結(jié)果如果為真,即非0,那么循環(huán)執(zhí)行
如果表達(dá)式結(jié)果為假,即為0 ,那么循環(huán)體不執(zhí)行
注意事項(xiàng):
如果在while循環(huán)中有break,那么該break用于調(diào)出當(dāng)前所在的循環(huán)體
就是說只能跳一級,跳出它當(dāng)前所在的循環(huán)。如果外面還有循環(huán)體,那照樣還要繼續(xù)執(zhí)行下去
如果在while循環(huán)中有continue,那么continue的作用就是用于跳過continue后面的代碼,直接到程序開頭的判斷部分,看要不要繼續(xù)往下執(zhí)行代碼,示例如下:
//代碼多余的部分略 while (i <= 10) { if(i == 5) continue; printf("%d ",i); i++; }
上面的代碼打印結(jié)果就是 1234,然后后面就不打了
因?yàn)楫?dāng)i變?yōu)?的時(shí)候經(jīng) if 語句的判斷為真,到continue處,又回到代碼while循環(huán)判斷的開頭,看是否執(zhí)行下一次的循環(huán),判斷之后可執(zhí)行,又經(jīng)if 來到continue處,又回到while處判斷,可執(zhí)行…如此往復(fù)下去,沒有跳出這個(gè)死循環(huán)的可能。后面也不可能再去打印別的東西。
for循環(huán)的continue,是直接跳到for循環(huán)的表達(dá)式3之中,執(zhí)行調(diào)整部分,由此可見while循環(huán)和for循環(huán)的continue是有一定區(qū)別的,while循環(huán)是完全有可能直接跳過調(diào)整部分的,因?yàn)檎{(diào)整部分有可能在他的下面的代碼
譬如上面的代碼塊就是這樣的。
- for循環(huán)語法結(jié)構(gòu)
for(表達(dá)式1;表達(dá)式2;表達(dá)式3) { 循環(huán)語句; }
for循環(huán)其實(shí)是while循環(huán)的進(jìn)一步改進(jìn),因?yàn)閣hile循環(huán)的初始化部分(int i = 0),條件判斷部分(while(i>10)),調(diào)整部分(i ++),這幾個(gè)部分之間相隔有的時(shí)候會很遠(yuǎn),如果需要改動的話就會很容易改動。
for循環(huán)中,表達(dá)式1用于給循環(huán)變量一個(gè)初始值(表達(dá)式 1,只會執(zhí)行一次,往后就沒用了,每次循環(huán)開始前變量保留著上一次的值,除非這個(gè)循環(huán)本身就在另一個(gè)循環(huán)之中,這樣的話每次都會初始化一遍,所以一般情況下,再上來的時(shí)候循環(huán)變量只會走 表達(dá)式 2 判斷一下和 表達(dá)式 3 自增一下,隨后繼續(xù)去執(zhí)行下面的代碼),表達(dá)式2用于判斷,表達(dá)式3用于調(diào)整。
要注意的要點(diǎn):盡量不要在循環(huán)體內(nèi)改變循環(huán)變量,不然循環(huán)很容易失去控制,以下圖代碼塊為例:
#include <stdio.h> int main() { for(i=0; i<11; i++) { printf("%d",i); i = 5; } return 0; }
上述代碼是一個(gè)連續(xù)打印6的一個(gè)死循環(huán),因?yàn)槊看巫叩降谄咝袝r(shí),i 都會被賦值成 5。再上去到調(diào)整語句自增。
所以說循環(huán)內(nèi)部千萬不要改變循環(huán)變量。
其次要注意的要點(diǎn):for循環(huán)的語句判斷部分采用開區(qū)間,因?yàn)槭褂瞄_區(qū)間的話不等號旁邊表示的是循環(huán)的次數(shù)
代碼的可讀性更高。比如:i<11.
for循環(huán)的用法也是非常靈活的,三個(gè)表達(dá)式可以隨意省略,但是判斷表達(dá)式還是最好不要省略,因?yàn)闃O易造成死循環(huán)。下面再來看一個(gè)示例:
#include <stdio.h> int main() { int i = 0; int j = 0; for(; i<3;i++) for(; j<3; j++) { printf("hehe\n"); } return 0; }
此處按照正常的理解來說,第四五行應(yīng)該已經(jīng)對 i 和 j 進(jìn)行了初始化,隨后再去執(zhí)行的時(shí)候,循環(huán)出三個(gè) i ,每個(gè) i 再分出來三個(gè) j,所以總共應(yīng)該打印應(yīng)該是九個(gè)hehe。但事實(shí)上并不是這樣,真正的執(zhí)行的過程為:i 初始化為 0之后,i 加一,與 j 相關(guān)的循環(huán)執(zhí)行三次,printf 也打印三次,但是之后 i 在加一次,在執(zhí)行 j 循環(huán)時(shí),j 的初始化是在循環(huán)之外的,因此 j 仍然是3,循環(huán)無法執(zhí)行,在往后也一樣是這樣。所以最終只打印三次hehe。
for循環(huán)還可以使用兩個(gè)變量循環(huán)變量來控制,例子如下:
int x ,y; for(x = 0&&y = 0;x<10&&y<10;x++&&y++)
- do while循環(huán)
do { 語句1; 語句2; ....... }while(判斷語句); //判斷語句旁邊的的分號千萬不能少,不然的話語法就過不去了
do while循環(huán)執(zhí)行方式很簡單,就是什么都不管直接先去執(zhí)行括號內(nèi)的語句,執(zhí)行完了再去判斷還要不要繼續(xù)走下去,所以說do while 最少都能執(zhí)行一次
do while 語句中的 continue 與 break 的用法
continue:直接跳過它下面的語句至最后的那個(gè)判斷語句,然后再從頭開始
break:直接就是調(diào)出所在的那個(gè)循環(huán)不執(zhí)行了
示例:
do { if(i == 5) continue; printf("%d ",i); i++; }while(i<=10);
最終打印結(jié)果就是: 1234,因?yàn)楫?dāng)代碼中 i 走到 5 的時(shí)候,第5 行的continue 就會開始執(zhí)行,使其跳轉(zhuǎn)到第8 行進(jìn)行判斷,判斷為真,跳到開頭的第4行,繼續(xù)執(zhí)行,再繼續(xù)跳轉(zhuǎn)…所以從 i 變成 5 開始,這段代碼就變成了死循環(huán)。
此外,如果第 5 行的語句被改成了 break 就會直接跳出所在的循環(huán),直接去執(zhí)行第 9 行的語句
循環(huán)練習(xí)題
- 題目一(階乘)
//計(jì)算n的階乘 #include <stdio.h> int main() { int ret = 1; int i = 0; int n = 0; scanf("%d",&n); for(i = 1; i<=n; i++) { ret *= i; } printf("%d",ret); return 0; }
- 題目二(階乘和)
//計(jì)算 1!+2!+3!+.....+10! //只寫出了核心步驟 int ret = 1; int i,sum = 0; int n = 1; for(n=1; n<11; n++) { ret = 1; //ret每次都必須要重新賦值 //不然里面會保留上一次的階乘值 //致使我們無法形成階乘相加的效果 for(i = 1; i<=n; i++) //注意,這里的 i ,每次都會初始化一次 //因?yàn)檫@個(gè)i的循環(huán)本身,就是在循環(huán)里面 { ret *= i; } sum += ret; } return 0;
上面這段代碼寫出來,思路非常的加單粗暴,就是要有各個(gè)不同的階乘,那么就用 n 來控制,要有階乘,那么就用 i 來控制。但是這種思路用來解決階乘相加的問題其實(shí)效率過低,因?yàn)槊看萎?dāng)代碼走到第14行的時(shí)候 ,每次要算階乘的時(shí)候總是會出現(xiàn)一個(gè)問題,就是每一次階乘前面總是會把上一次的階乘重算一遍,再乘上一個(gè)最新更新的 i ,這樣非常浪費(fèi)時(shí)間
圖解上面這段代碼的缺陷:
所以說我們可以這樣想,可不可以更高效地利用數(shù)據(jù),比如:1! 用完不要扔掉,再給他乘以一個(gè) 2,
變成 2!,同理 2!也不要扔掉,再給他乘以一個(gè) 3,最后把他們相加放到 sum 里面就行了。
//計(jì)算 1!+2!+3!+......+10! //優(yōu)化后的核心步驟 for(n=1; n<11; n++) { ret *= n; sum += ret; }
優(yōu)化后的圖解:
可以對照其對應(yīng)的代碼塊,不難發(fā)現(xiàn),這個(gè)效果一個(gè)循環(huán)就搞定了,利用率還非常高
- 題目三(二分查找)
//在一個(gè)有序數(shù)組中查找具體的某個(gè)數(shù) //有序,即排好序的,如果從前往后找的話效率過低 //此題使用二分查找法 #include <stdio.h> int main() { int arr[10] = {1,2,3,4,5,6,7,8,9,10}; int k = 7;//此處為要查找的元素 int sz = size of(arr)/size of(arr[0]); //上面這行是用來計(jì)算出數(shù)組里面的元素個(gè)數(shù) int left = 0; int right = sz - 1; while(left <= right) { int mid = (left + right)/2; if(arr[mid] < k) { left = mid + 1; } else if(arr[mid] > k) { right = mid - 1; } else { printf("找到了,下標(biāo)為:%d\n",mid); break; } } if(left > right) { printf("找不到\n"); } return 0; }
使用二分查找法去尋找數(shù)可以大大提高查找效率,其原理非常簡單:就是先算出數(shù)組中的元素個(gè)數(shù),然后將查找時(shí)移動的右下標(biāo)(right)初始值表示出來(即:數(shù)組元素個(gè)數(shù)減一),其次左下標(biāo)(left)的初始值賦 0 (因?yàn)閿?shù)組元素下標(biāo)是從 0 開始的),然后表示出 mid ,就是左右下標(biāo)的平均值,再用這個(gè)平均值去和要去查找的數(shù) k 去比較,如果 mid 比 k 大,mid減一并將值賦給left,實(shí)現(xiàn)左值的更新,若 mid 比 k 小,mid 減一賦給 right,實(shí)現(xiàn)右值的更新,由此不斷循環(huán)往復(fù)左右值相距越來越近,若能實(shí)現(xiàn)左右值相等,則查找的數(shù)是存在的,若逼近到最后直至左右值交叉,則說明要查找的數(shù)不存在。圖示如下:
- [
https://imgtu.com/i/gm5KGF
- 題目四(兩邊往中間漸變)
//編寫多個(gè)字符從兩端向中間移動 //其實(shí)就是一串字符從兩端向中間移動 //每次露出左數(shù)第一個(gè)未知和右數(shù)第一個(gè)未知 #include <stdio.h> #include <string.h> #include <windows.h> int main() { char arr1[] = "welcome to world"; char arr2[] = "################"; int left = 0; int right = strlen (arr1)-1; printf("%s\n", arr2); while(left <= right) { arr2[left] = arr1[left]; arr2[right] = arr1[right]; Sleep(1000);//此處s必須大寫,這里起到休眠1秒的作用 system("cls");//此處起到閃屏的動態(tài)作用 left++; right++; printf("%s",arr2); } return 0; }
這道題目的原理和二分查找法類似,不再贅述。
此外還要注意的是:strlen()用于求字符串的長度,即里面含有幾個(gè)字符
sizeof()用于求數(shù)組所占的內(nèi)存空間的大小
- 題目五(密碼登錄)
//模擬密碼登錄的情景,只允許登錄三次 //三次都不對,則退出程序 #include <stdio.h> #include <string.h> int main() { int i = 0; char password[20] = { 0 }; for (i = 0; i < 3; i++) { printf("請輸入密碼:> "); scanf("%s", password);//數(shù)組名本身就是地址,不是需要再用取地址符 if (strcmp(password, "123456") == 0)//if后別加分號!!(淦,找了一個(gè)下午的bug) { printf("登陸成功\n"); break; } else { printf("登陸失敗,請重新輸入!\n"); } } if (i == 3) { printf("三次錯(cuò)誤,退出程序\n"); } return 0; }
此處的 strcmp(字符串 1,字符串 2)是用于對比字符串的內(nèi)容是否一致,如果一致,strcmp 返回一個(gè) 0 ,這也是為什么 if 里面判斷其是否等于 0。如果不一致,有兩種情況:字符串 1 大于字符串 2 ,返回值大于 0 ;字符串 1 小于字符串 2,返回值小于 0 。此外,strcmp 的比較方法是:字符串上的每一位逐個(gè)比較,比較對應(yīng)位置上字符的 ASCII 碼值,不是比較字符串的長度,一旦對應(yīng)位置上的字符大小分出高下,那么兩個(gè)字符也立刻分出高下,不管后面的字符或大或小或長或短。下面用圖示來解釋:
- 題目六(猜數(shù)字游戲)
//寫一個(gè)猜數(shù)字游戲 //游戲要求如下: //1.自動產(chǎn)生一個(gè) 1-100 之間的隨機(jī)數(shù) //2.猜數(shù)字 // a.猜對了,就恭喜你游戲結(jié)束 // b.你猜錯(cuò)了,會告訴你猜大了,還是猜小了 //3.游戲會一直玩,除非退出游戲 #include <stdio.h> #include <stdlib.h> #include <time.h> void menu()//menu函數(shù)的功能就是去實(shí)現(xiàn)一個(gè)菜單界面 { printf("-------------------\n"); printf("-----1.玩游戲------\n"); printf("-----2,退出游戲----\n"); printf("-------------------\n"); } void game()//game函數(shù)的功能就是去實(shí)現(xiàn)游戲的基本操作和隨機(jī)數(shù)的產(chǎn)生 { int ret = 0; int guess = 0; ret = rand() % 100 + 1;//此處就是生成隨機(jī)數(shù)的關(guān)鍵,rand的用法可以去MSDN去查 //還有題目要求是1-100的隨機(jī)數(shù)所以rand返回值必須模上100.隨機(jī)數(shù)就可以被限定在0-99再加1,就是1-100 while (1)//這個(gè)while實(shí)現(xiàn)的就是猜數(shù)字的的過程 { printf("請猜一個(gè)數(shù):> \n"); scanf("%d", &guess); if (guess < ret)//這里就是要讓guess這個(gè)猜的值和我們隨機(jī)生成的數(shù)來做比較 { printf("猜小了\n"); } else if(guess > ret ) { printf("猜大了\n"); } else { printf("恭喜你,猜對了\n"); break; } } } int main() { srand((unsigned int)time(NULL));//這里和上面的rand相聯(lián)系,是rand語法規(guī)定的一部分,這里的作用來給生成的隨機(jī)數(shù)一個(gè)起點(diǎn) //里面的那個(gè)time()是個(gè)時(shí)間戳,就是用現(xiàn)在的時(shí)間和計(jì)算機(jī)的起始時(shí)間換算出一個(gè)隨機(jī)數(shù) //因?yàn)閟rand里面必須要填上一個(gè)隨機(jī)數(shù)所以用時(shí)間就是再好不過的了 //還有就是srand的語法規(guī)定里面的數(shù)必須是無符號整形所以(unsigned int)用來強(qiáng)制改變數(shù)的類型 int input = 0; do //此處使用do while循環(huán)就是要保證不管玩不玩先進(jìn)去選擇 { menu(); printf("請按菜單要求輸入一個(gè)數(shù):> "); scanf("%d", &input); switch (input) { case 1: game(); break; case 0: printf("退出游戲\n"); break; defult ://此處的的defult 的作用也很關(guān)鍵。它可以防止玩家輸入其他數(shù)字進(jìn)入到while()的判斷之中被誤判為真 printf("輸入錯(cuò)誤,請重輸\n"); } } while (input);//此處用input來判斷是很巧妙的,因?yàn)檫x擇上input的只有0和1去供你選擇,若為0便是假 跳出循環(huán) system("pause"); //若為 1便是真,繼續(xù)循環(huán) //選擇 0 的時(shí)候程序便會跳到67行終止 return 0; }
- goto語句
goto語句在C語言可以改變程序的進(jìn)程順序,只要在想跳轉(zhuǎn)的地方做個(gè)標(biāo)記,然后程序走到對應(yīng)的goto語句處就會跳轉(zhuǎn)到標(biāo)記處重新開始執(zhí)行。(感覺有點(diǎn)像《火影忍者》里面波風(fēng)水門的飛雷神)但是寫程序的時(shí)候要小心,goto語句有可能導(dǎo)致程序混亂產(chǎn)生bug。另外,goto語句不可以跨函數(shù)跳躍。
#include <stdio.h> int main() { flag://這里就是標(biāo)記的地方,一開始程序進(jìn)去忽略這個(gè)東西 printf("hehe\n"); printf("haha\n"); goto flag;//這里就是讓程序跳轉(zhuǎn)到標(biāo)記處的語句 return 0; }
- getchar與putchar用法
下圖為示例:
#include<stdio.h> int main() { int ch = getchar(); //getchar是用來接收鍵盤上輸入的字符 //之后將接受的字符轉(zhuǎn)化為ASCII碼值存放起來 //由前面的存儲類型是int也是可以看出來的 //總之,用法是和scanf是差不多的 putchar(ch); //putchar把接收到的字符打印出來 //原理和printf差不多 return 0; }
此外還要注意的是:getchar獲取一個(gè)字符如果失敗了,那么他就會返回一個(gè)EOF
EOF 翻譯過來就是:文件終止(end of file)
#include <stdio.h> int main() { int ch = 0; while((ch = getchar())!=EOF) //上面條代碼就是讓getchar讀取一個(gè)數(shù) //判斷它有沒有讀取錯(cuò)誤,若對的話則循環(huán) { putchr(ch); } return 0; }
上面的這段代碼的效果即輸入什么就打印什么,可以不停地輸,不停地打
例:輸 a 則打 a,輸 b 則打 b。
如果想要循環(huán)停止的話,那么就可以輸入一個(gè):ctrl 加 z ,其原理其實(shí)就是給 getchar 輸入一個(gè)錯(cuò)誤字符
讓他終止,返回一個(gè) EOF。
getchar 接收字符的原理:getchar 和 電腦鍵盤之間有一個(gè)緩沖區(qū),該緩沖區(qū)用于存放鍵盤上輸入的東西,此外getchar 只要是緩沖區(qū)里面的東西一律照收不誤,包括回車,回車如果輸入進(jìn)去就會被緩沖區(qū)理解為一個(gè) \n ,所以上述代碼的輸入和打印形式為:
a //這里先給他一個(gè)a ,再打了一個(gè)回車
a
b
b
就是說,getchar 先讀取了 a ,隨后 a被打印,之后又讀取一個(gè) \n 由此 b 只能在第三行開始輸入,以此類推…
getchar 與putchar的實(shí)際應(yīng)用:
實(shí)例如下圖:
#include <stdio.h> int main() { int password[20] = {}; printf("請輸入密碼:> "); scanf("%s", password); printf("請確認(rèn)密碼:> "); int tmp = 0; while ((tmp = getchar()) != '\n') { ; } int ch = getchar(); if (ch == 'Y') { printf("確認(rèn)成功\n"); } else { printf("確認(rèn)失敗\n"); } return 0; }
上面的一段的代碼寫的是一個(gè)輸入密碼并確認(rèn)的函數(shù),具體分析:
首先我們創(chuàng)建一個(gè)數(shù)組,用于存放輸入的字符串,之后創(chuàng)建一個(gè) tmp ,用循環(huán)來消耗 scanf 拿不走的字符串,就是讓while里面的getchar在讀到 \n 之前,一直用上面代碼塊中的第11行的空語句來來消耗那些沒用的(就是說getchar讀入,但不會進(jìn)行操作),即空格剩下的 (空格)abcdef \n,因?yàn)槿绻蝗ハ牡脑挘?3行的getchar將直接讀取 6 后面的那個(gè)空格,然后自動默認(rèn)走else 后面的分支,隨后在屏幕上直接打印 :確認(rèn)失敗。由此可見,getchar 的作用非常直白,只是在讀取的時(shí)候看到緩沖區(qū)有什么就讀什么。
[
到此這篇關(guān)于C語言基礎(chǔ)解析之分支與循環(huán)語句的文章就介紹到這了,更多相關(guān)C語言 分支與循環(huán)語句內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://blog.csdn.net/qq_54693675/article/details/116422278