c++算法入門教程(2)

C++是一種功能強大且廣泛應用的編程語言,對于想要深入學習編程和算法的人來說,掌握C++是一個重要的里程碑。本文將帶你逐步了解C++編程的基礎知識,并介紹一些常見的算法和編程技巧幫你入門c++算法。
?
c++算法入門教程(1) 中,我講解了什么是編程、安裝編譯環境、輸出、變量、輸入、for循環,沒看第一篇的可以去看看。

一、if選擇語句

在C++中,if屬于選擇語句(conditional statement)。選擇語句用于根據條件的真假來執行不同的代碼塊。if語句允許程序根據條件表達式的結果來確定要執行的代碼路徑。如果條件為真,則執行if代碼塊中的語句;如果條件為假,則跳過if代碼塊或執行與之關聯的else代碼塊,簡單來說就是如果的意思,例如:

if (1+1 == 1) {cout << "1+1=1";  // 如果條件為真,則執行這里的代碼
} else {cout << "1+1不等于1";  // 如果條件為假,則執行這里的代碼
}

以上代碼的意思就是“如果1+1=1,那么輸出1+1=1,否則輸出1+1不等于1”,這里順便講一下,在c++中,“==”的意思是“等于”,而“=”的用處是“賦值”,所以在第一行不用=而用==。

二、switch多分支選擇語句

在C++中,除了if語句,我們還可以使用switch語句來進行多分支的選擇。switch語句通常用于當有多個互斥的條件需要判斷時,使得代碼更加清晰和易于維護。switch語句的基本結構如下:

switch (expression) {case value1:// 當expression的值等于value1時執行這里的代碼break;case value2:// 當expression的值等于value2時執行這里的代碼break;// ...可以有多個casedefault:// 如果沒有匹配的case,執行這里的代碼break;
}

這里的`expression`是要判斷的變量或表達式,`value1`、`value2`等是與`expression`進行比較的值。如果`expression`的值與某個`case`的值相匹配,就會執行對應的代碼塊。`break`語句用于退出switch語句,防止執行到下一個`case`。如果所有`case`都不匹配,就會執行`default`部分的代碼。

舉個例子,假設我們有一個數字,想要根據這個數字輸出對應的信息:

int number = 2;
switch (number) {case 1:cout << "你輸入的是1" << endl;break;case 2:cout << "你輸入的是2" << endl;break;case 3:cout << "你輸入的是3" << endl;break;default:cout << "輸入的不是1、2、3" << endl;break;
}

在這個例子中,如果`number`的值為2,那么會輸出“你輸入的是2”。

三、循環結構

我們已經介紹了`for`循環,除此之外,C++還提供了其他類型的循環結構,如`while`循環和`do-while`循環。

1. `while`循環

`while`循環在條件為真時重復執行代碼塊,直到條件為假。它的基本結構如下

while (condition) {// 循環體代碼
}

如果條件一開始就為假,那么循環體內的代碼將不會被執行。舉個例子:

	int n = 3;while (n) {//只要n不為假(0)那么執行循環體內語句cout << n;n --;   //使n-1	}

代碼運行后會顯示“123”。

2. `do-while`循環

`do-while`循環至少執行一次循環體,然后再判斷條件。如果條件為真,繼續執行循環。它的基本結構如下:

do {// 循環體代碼
} while (condition);

即使條件一開始就為假,`do-while`循環也會執行一次循環體。

四、數組

數組是C++中用于存儲多個值的變量。數組可以存儲固定大小的同類型元素序列。聲明數組的語法如下:

type arrayName[arraySize];//數據類型 數組名[數組中的變量數]

例如,聲明一個整型數組:

int numbers[5];

這將創建一個名為`numbers`的數組,它可以存儲5個整數。數組的索引從0開始,所以`numbers[0]`是第一個元素,`numbers[4]`是最后一個元素。比如:

	int n[3];for (int i = 0;i < 3;i ++)n[i] = i;for (int i = 0;i < 3;i ++)cout << n[i];

運行后會輸出“012”。

五、函數

函數是一段可重復使用的代碼塊,它可以接受輸入(參數)并返回一個值,也可以不接收參數,只運行代碼。在C++中,函數的基本結構如下:

type functionName(parameters) {//返回值類型 函數名 (輸入的參數)// 函數體代碼return value;//返回一個值
}

例如,創建一個計算兩個數之和的函數:

int add(int a, int b) {return a + b;
}
int main() {cout << add(1,2);return 0;
}

在這個例子中,`add`函數接受兩個整數參數`a`(1)和`b`(2),返回它們的和(3),然后主函數再輸出和,還有一種特殊的返回值類型:void(無類型),這種函數只可以運行代碼,不能返回值。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/712258.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/712258.shtml
英文地址,請注明出處:http://en.pswp.cn/news/712258.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

GEE:使用Sigmoid激活函數對單波段圖像進行變換(以NDVI為例)

作者:CSDN @ _養樂多_ 本文將介紹在 Google Earth Engine (GEE)平臺上,對任意單波段影像進行 Sigmoid 變換的代碼。并以對 NDVI 影像像素值的變換為例。 文章目錄 一、Sigmoid激活函數1.1 什么是 Sigmoid 激活函數1.2 用到遙感圖像上有什么用?二、代碼鏈接三、完整代碼一…

查詢每個會話使用內存大小(DM8達夢數據庫)

DM8達夢數據庫查詢每個會話使用內存大小 1 環境介紹2 查詢每個sql會話使用內存大小3 達夢數據庫學習使用列表 1 環境介紹 在某些環境數據庫內存增長到服務器內存用完,發生OOM事件,可以分析sql會話使用內存大小; 2 查詢每個sql會話使用內存大小 --創建SQL會話占用內存記錄表 …

共享棧的C語言實現

共享棧&#xff1a;所謂共享棧就是為了節省空間&#xff0c;讓兩個棧共享一片連續的存儲空間&#xff0c;兩個棧從這片連續的共享空間的兩端向中間擴充自己的存儲空間&#xff0c;設這片存儲空間的大小為maxSize&#xff0c;采用棧頂指針始終指向當前棧頂元素的方式來實現共享棧…

簡單認識算法的復雜度

時間復雜度與空間復雜度 1.算法的復雜度 ? 算法在編寫成可執行程序后&#xff0c;運行時需要耗費時間資源和空間(內存)資源 。因此衡量一個算法的好壞&#xff0c;一般是從時間和空間兩個維度來衡量的&#xff0c;即時間復雜度和空間復雜度。 ? 時間復雜度主要衡量一個算法…

MYSQL02高級_目錄結構、默認數據庫、表文件、系統獨立表空間

文章目錄 ①. MySQL目錄結構②. 查看默認數據庫③. MYSQL5.7和8表文件③. 系統、獨立表空間 ①. MySQL目錄結構 ①. 如何查看關聯mysql目錄 [rootmysql8 ~]# find / -name mysql /var/lib/mysql /var/lib/mysql/mysql /etc/selinux/targeted/tmp/modules/100/mysql /etc/seli…

前端src中圖片img標簽資源的幾種寫法?

在 Vue 項目中引用圖片路徑有幾種不同的方法&#xff0c;具體取決于你的項目結構和配置。以下是幾種常見的方式&#xff1a; 1. 靜態資源目錄 (Public) 如果你的圖片放在了項目的 public 目錄下&#xff08;例如&#xff0c;Vite 和 Create Vue App 腳手架工具通常使用這個目…

05 OpenCV圖像混合技術

文章目錄 理論算子示例 理論 其中 的取值范圍為0~1之間 算子 addWeighted CV_EXPORTS_W void addWeighted(InputArray src1, double alpha, InputArray src2, double beta,double gamma, OutputArray dst, int dtype -1 ); 參數1&#xff1a;輸入圖像Mat …

2024年【廣東省安全員A證第四批(主要負責人)】考試試卷及廣東省安全員A證第四批(主要負責人)作業模擬考試

題庫來源&#xff1a;安全生產模擬考試一點通公眾號小程序 廣東省安全員A證第四批&#xff08;主要負責人&#xff09;考試試卷根據新廣東省安全員A證第四批&#xff08;主要負責人&#xff09;考試大綱要求&#xff0c;安全生產模擬考試一點通將廣東省安全員A證第四批&#x…

釘釘機器人發送折線圖卡片 工具類代碼

釘釘機器人 “創建并投放卡片 接口 ” 可以 發送折線圖、柱狀圖 官方文檔&#xff1a;創建并投放卡片 - 釘釘開放平臺 0依賴、1模板、2機器人放到內部應用、3放開這個權限 、4工具類、5調用工具類 拼接入參 卡片模板 自己看文檔創建&#xff0c;卡片模板的id 有用 0、依賴…

Springboot項目中定時任務的四種實現方式

文章目錄 1. 使用Scheduled注解1.1 時間間隔執行1.2 固定時間點執行 2. 使用EnableScheduling注解啟用定時任務3. 實現SchedulingConfigurer接口4. 使用Quartz框架4.1 配置QuartzScheduler4.2 定義Job類和Trigger類 5. 總結 在開發現代應用時&#xff0c;定時任務是一個非常常見…

地圖可視化繪制 | R-ggplot2 NC地圖文件可視化

在推出兩期數據分享之后&#xff0c;獲取數據的小伙伴們也知道&#xff0c;數據格式都是NetCDF(nc) 格式網格數據&#xff0c;雖然我在推文分享中說明使用Python、R或者GIS類軟件都是可以進行 處理和可視化繪制的&#xff0c;但是&#xff0c;還是有小伙伴咨詢使用編程軟件Pyth…

牛客周賽 Round 34(A,B,C,D,E,F,G)

把這場忘了。。官方也遲遲不發題解 比賽鏈接 出題人題解 A 小紅的字符串生成 思路&#xff1a; 枚舉四種字符串打印出來即可&#xff0c;為了防止重復可以用set先去一下重。 code&#xff1a; #include <iostream> #include <cstdio> #include <cstring&g…

Opencv實戰(4)詳解輪廓

輪廓 Opencv實戰系列&#xff0c;前文&#xff1a; 文章目錄 輪廓(1).查找繪制1.findContours()2.drawContours() (2).層級結構(3).篩選輪廓(4).凸包 (1).查找繪制 預處理&#xff1a; 灰度化&#xff1a;使用cv::cvtColor()圖像去噪&#xff1a;使用高斯濾波cv::Gaussian(…

Acwing-基礎算法課筆記之數學知識(擴展歐幾里得算法)

Acwing-基礎算法課筆記之數學知識&#xff08;擴展歐幾里得算法&#xff09; 一、擴展歐幾里得算法1、裴蜀定理2、過程模擬3、代碼模板 二、線性同余方程1、定義2、模擬過程3、結論證明 一、擴展歐幾里得算法 1、裴蜀定理 對于任意正整數 a a a&#xff0c; b b b&#xff0…

day48 ● 198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III

一遍過。 當前房屋偷與不偷取決于 前一個房屋和前兩個房屋是否被偷了。所以這里就更感覺到&#xff0c;當前狀態和前面狀態會有一種依賴關系&#xff0c;那么這種依賴關系都是動規的遞推公式。 class Solution { public:int rob(vector<int>& nums) {vector<vec…

門店縱深不足、入口有遮擋影響客流準確率?近景客流幫你搞定!

為了優化運營策略、提升門店營收&#xff0c;很多店鋪和商場都會安裝客流攝像機。但是在實際應用中&#xff0c;由于門店縱深受限等原因&#xff0c;導致無法使用之前的常規客流產品。 針對這種情況&#xff0c;悠絡客最新研發了近景客流產品&#xff0c;即使存在入口被遮擋或門…

內網信息搜集

目錄 內網基礎知識 基本流程圖 怎么判斷是否在域內 常規信息類收集-應用&服務&權限等 cs信息搜集 bloodhound安裝及使用 內網基礎知識 工作組&#xff1a;將不同的計算機按照功能分別列入不同的組&#xff0c;想要訪問某個部門的資源&#xff0c;只要在【網絡】里…

pyqt教程

一、組件安裝配置 1.安裝組件 在Anaconda Prompt下進入自己的python環境 pip install PyQt5 pip install PyQt5-tools 2.vscode安裝插件 3.配置路徑 配置Pyuic:Cmd與Qtdesigner:Path路徑 1.Pyuic:Cmd路徑 一般是在你安裝的python環境下的 \Scripts\pyuic5.exe 2.Qtdesigner:P…

anaconda簡介以及安裝(Windows)

介紹 Anaconda是一個開源的Python發行版本&#xff0c;它是一個打包的集合&#xff0c;里面預裝了conda、Python、眾多packages、科學計算工具等。Anaconda的目的是方便使用Python進行數據科學研究&#xff0c;它涵蓋了數據科學領域常見的Python庫&#xff0c;并且自帶了專門用…

Python的循環結構練習

歸納編程學習的感悟&#xff0c; 記錄奮斗路上的點滴&#xff0c; 希望能幫到一樣刻苦的你&#xff01; 如有不足歡迎指正&#xff01; 共同學習交流&#xff01; &#x1f30e;歡迎各位→點贊 &#x1f44d; 收藏? 留言?&#x1f4dd; 生命對某些人來說是美麗的&#xff0c…