for(;;;) 一切能用while循環(huán)的語句都可以使用for循環(huán)實現(xiàn) while() 循環(huán) 不滿足括號內(nèi)容時結(jié)束循環(huán); 先簡單寫一個while循環(huán) 吃小籠包子,吃到第三個包子吃出一條蟲 #include<stdio.h> #include<stdlib.h> int main(){ int num = 1; while (num<6){ //第三包子吃出了一條蟲 if (num == 3){ //跳過第三個包子,直接吃第四個 num ; continue; } else{ printf("吃了%d個包子\n", num); num ; } } system("pause"); return 0; } 擴展知識: continue和break的區(qū)別 continue 是結(jié)束本次循環(huán)繼續(xù)進行下一次循環(huán); break 是直接結(jié)束并跳出循環(huán). 吃小籠包子,吃到第三個包子吃出半條蟲 #include<stdio.h> #include<stdlib.h> int main(){ int num = 1; while (num<6){ //第三包子吃出了一條蟲 if (num == 3){ //跳過第三個包子,直接吃第四個 break; } else{ printf("吃了%d個包子\n", num); num ; } } system("pause"); return 0; } 用for循環(huán)計算1! 2!..... n! #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> int main(){ /*求1! 2! 3!..... n!*//*二重循環(huán)*/ int n; printf("請輸入n的值:"); scanf("%d", &n); int sum2 = 0;/*保存最終結(jié)果*/ /*一重循環(huán)求1! ....n!*/ for (int u = 1; u <= n; u ){ int sum1=1;/*保存n!的結(jié)果*/ /*二重循環(huán)求n!*/ for (int i = 1; i <= u; i ){ sum1 = sum1*i; } sum2 = sum2 sum1; } printf("=%d\n", sum2); system("pause"); return 0; } 在這里使用雙重循環(huán),比較復(fù)雜,我們一般使用函數(shù),使代碼更加易懂 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> /*求1! 2! 3!..... n!,用函數(shù)封裝*/ //使用函數(shù)求出n! int factor(int n){ int result = 1; for (int i = 1; i <= n; i ){ result = result*i; } return result;/*返回結(jié)果*/ } int main(){ int n; printf("請輸入n的值:"); scanf("%d", &n); int sum = 0; for (int i = 1; i <= n; i ){ sum = sum factor(i); } printf("=%d\n", sum); system("pause"); return 0; } 關(guān)于循環(huán)的一些簡單習(xí)題 編寫一個代碼,演示多個字符從兩端移動,向中間匯聚 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<Windows.h> int main(){ char str1[] = "welcome to myboke"; char str2[] = "#################"; printf("%s\n", str2); /*兩個變量,從兩側(cè)循環(huán)*/ int left = 0; int right = strlen(str1) - 1; while (left <= right){ Sleep(500);/*暫停一會 更好觀察*/ system("cls");/*清除前一個顯示*/ str2[left] = str1[left]; str2[right] = str1[right]; left ; right--; printf("%s\n", str2); } system("pause"); return 0; } 擴展知識: strlen函數(shù)是計算字符串長度 Sleep函數(shù)是windows上獨有的函數(shù),首字母S要大寫 cls也是windows命令 cls cl clean 清空 s screen 屏幕編寫一個程序, 模擬用戶登錄, 最多登錄三次, 只允許輸入三次, 如果成功提示登錄成功, 如果三次輸入錯誤, 則退出程序; #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> int main(){ for (int i = 1; i <= 3; i ){ char arr1[20] = { 0 };/*用戶輸入密碼*/ char arr2[20] = "888888" ;/*正確密碼*/ printf("請輸入密碼:"); scanf("%s", arr1); if (strcmp(arr1, arr2) == 0){ printf("密碼正確\n"); break; } else{ system("cls"); printf("密碼錯誤\n"); } } system("pause"); return 0; } 擴展知識: scanf函數(shù) scanf("%s",arr)和scanf("%d",n)都可以實現(xiàn) 如果要讀取一個整數(shù)或浮點數(shù)要加& 比較兩個字符串是否相等 C語言和Java不能直接==,要使用strcmp函數(shù),返回值為0時是相等 在一個數(shù)組中查找某個數(shù)字n,并求其下標 #include<stdio.h> #include<stdlib.h> int main(){ int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int tofind = 70; int left = 0; int right = sizeof(arr) / sizeof(arr[0]) - 1; for (int i = 0; i <= right; i ){ if (tofind == arr[i]){ printf("下標為%d\n", i); break; } if (tofind != arr[i]){ continue; } } system("pause"); return 0; } 擴展知識: sizeof求的是一個變量或類型在內(nèi)存中所占的空間大小(字節(jié)) 明天折半查找 嘻嘻嘻 來源:https://www./content-4-891401.html |
|