立志10天学会C++基础应用—day02 代码清晰易懂 涉及数据结构算法的知识 写完了~我也麻了
??哈嘍,很高興又見(jiàn)面啦,一起加油一起學(xué)習(xí),歡迎您的關(guān)注!https://blog.csdn.net/hanhanwanghaha學(xué)習(xí)路上有您的關(guān)注是我的榮幸,一起進(jìn)步是我的動(dòng)力,明天也一起加油啊!
以往鏈接
立志10天學(xué)會(huì)C++基礎(chǔ)應(yīng)用—day01
文章目錄
- 以往鏈接
- 一、循環(huán)結(jié)構(gòu)
- A01while循環(huán).cpp
- A02while猜數(shù)字.cpp
- A03dowhile循環(huán).cpp
- A04dowhile水仙花數(shù).cpp
- A05for循環(huán)敲桌子案例.cpp
- 二、嵌套循環(huán)
- A06嵌套循環(huán)星星圖.cpp
- A06嵌套循環(huán)乘法口訣表.cpp
- 三、跳轉(zhuǎn)語(yǔ)句
- A07跳轉(zhuǎn)語(yǔ)句break.cpp
- A08跳轉(zhuǎn)語(yǔ)句continue.cpp
- A09跳轉(zhuǎn)語(yǔ)句goto.cpp
- 四、數(shù)組
- A10數(shù)組的定義.cpp
- A11八只狗狗比體重.cpp
- A12元素的逆置.cpp
- A13冒泡排序.cpp
- A14二維數(shù)組的定義方式.cpp
- A14二維數(shù)組的數(shù)組名稱.cpp
- A16二維數(shù)組的應(yīng)用三位同學(xué)的總成績(jī).cpp
- 五、函數(shù)
- A17函數(shù)的調(diào)用.cpp
- A17函數(shù)的值傳遞.cpp
- A19函數(shù)的常見(jiàn)樣式.cpp
- A20函數(shù)的分文件編寫(xiě).cpp
- 六、指針
- A21指針的定義和使用.cpp
- A22指針內(nèi)存大小空指針野指針.cpp
- A23const修飾指針.cpp
一、循環(huán)結(jié)構(gòu)
A01while循環(huán).cpp
#include <iostream> using namespace std;int main() {int num = 0;num++;//()中填入循環(huán)條件//語(yǔ)法:while(循環(huán)條件){循環(huán)語(yǔ)句}while (num < 10) {num *= 2;cout << num << endl;}system("pause");return 0;}A02while猜數(shù)字.cpp
#include <iostream> using namespace std; #include<ctime>int main() {//添加隨機(jī)數(shù)種子,作用利用當(dāng)前系統(tǒng)時(shí)間生成隨機(jī)數(shù),防止每次隨機(jī)數(shù)都一樣‘srand((unsigned int)time(NULL));//1、系統(tǒng)生成0到99的隨機(jī)數(shù)int num = rand() % 100;//cout << num << endl;//2、玩家進(jìn)行猜測(cè)cout << "請(qǐng)輸入你猜的數(shù)" << endl;int ans = 0;//3、判斷玩家的猜測(cè)//while死循環(huán),等待中斷信號(hào)while (1) {cin >> ans;if (ans<num) {cout << "猜測(cè)過(guò)小,請(qǐng)你再猜一遍" << endl;}else if(ans>num) {cout << "猜測(cè)過(guò)大,請(qǐng)你再猜一遍" << endl;}else {cout << "恭喜您猜對(duì)了" << endl;break;//中斷信號(hào)}}//猜對(duì) 退出游戲//猜錯(cuò) 提示猜的結(jié)果 過(guò)大或者過(guò)小 重新返回第二步system("pause");return 0; }A03dowhile循環(huán).cpp
用這個(gè)寫(xiě)了一個(gè)死循環(huán),無(wú)聊到爆~今天的白日夢(mèng)樂(lè)趣
A04dowhile水仙花數(shù).cpp
#include <iostream> using namespace std;int main() {//查詢100到999中的所有水仙花數(shù)int num = 100;do {int a = 0;//個(gè)位int b = 0;//十位int c = 0;//百位a = num % 10;//提取個(gè)位的數(shù)b = num / 10 % 10;//提取十位的數(shù)c = num / 100 % 10;//提取百位的數(shù)if (a * a * a + b * b * b + c * c * c == num) {//如果是水仙花數(shù),就打印cout << num << endl;}num++;} while (num < 1000);system("pause");return 0; }A05for循環(huán)敲桌子案例.cpp
案例描述:從1開(kāi)始數(shù)到數(shù)字100,如果數(shù)字個(gè)位含有7,或者數(shù)字十位含有7,或者該數(shù)字是7的倍數(shù),我們打印敲桌子,其余數(shù)字直接打印輸出。
#include <iostream> using namespace std;int main() {//語(yǔ)法:for(起始表達(dá)式:條件表達(dá)式:末尾表達(dá)式){循環(huán)語(yǔ)句}for (int i = 0;i <= 100;i++) {//數(shù)字個(gè)位含有7,或者數(shù)字十位含有7,或者該數(shù)字是7的倍數(shù)if (i / 7 == 0 || i / 10 ==7 || i % 7 == 0) {cout << "敲桌子" << endl;}else{cout << i << endl;}}system("pause");return 0;}二、嵌套循環(huán)
A06嵌套循環(huán)星星圖.cpp
打印一個(gè)星星圖
#include <iostream> using namespace std;int main() {//打印一個(gè)星星圖for (int i = 0;i < 10;i++) {//內(nèi)層循環(huán)for (int j = 0;j < 10;j++) {cout << "*";}cout << endl;}system("pause");return 0; }A06嵌套循環(huán)乘法口訣表.cpp
#include <iostream> using namespace std;int main() {//乘法口訣表//打印行數(shù)for (int i = 1;i < 10;i++) {for (int j = 1;j <= i;j++) {cout << j << "*" << i << "=" << j * i <<" ";}cout << endl;}system("pause");return 0; }歡迎關(guān)注:https://blog.csdn.net/hanhanwanghaha
三、跳轉(zhuǎn)語(yǔ)句
A07跳轉(zhuǎn)語(yǔ)句break.cpp
#include <iostream> using namespace std;int main() {//break的幾種用法//1、出現(xiàn)在switch中cout << "請(qǐng)選擇您的成績(jī)等級(jí)" << endl;cout << "1、A" << endl;cout << "2、B" << endl;cout << "3、C" << endl;//創(chuàng)建結(jié)果的變量int grade = 0;//用戶輸入等級(jí)cin >> grade;switch (grade){case 1:cout << "您可以讀市重點(diǎn)" << endl;break;case 2:cout << "您可以讀區(qū)重點(diǎn)" << endl;break;case 3:cout << "您可以讀鄉(xiāng)鎮(zhèn)學(xué)校" << endl;break;default:break;}//2、出現(xiàn)在for循環(huán)中for (int i = 0; i < 10; i++){if (i == 7) {break;}cout << i << endl;}//3、出現(xiàn)在嵌套循環(huán)語(yǔ)句中for (int i = 0;i < 10;i++) {//內(nèi)層循環(huán)for (int j = 0;j < 10;j++) {if (j == 5) {break;}cout << "*";}cout << endl;}system("pause");return 0;}A08跳轉(zhuǎn)語(yǔ)句continue.cpp
執(zhí)行到continue那一行,就不會(huì)執(zhí)行后面的了,然后循環(huán)前面的
#include <iostream> using namespace std;int main() {//continue語(yǔ)句for (int i = 0;i <= 100;i++) {//結(jié)果是奇數(shù)輸出,偶數(shù)不輸出if (i % 2 == 0) {continue;}cout << i << endl;}system("pause");return 0;}A09跳轉(zhuǎn)語(yǔ)句goto.cpp
#include <iostream> using namespace std;int main() {//語(yǔ)法:goto 標(biāo)記//如果標(biāo)記的名稱存在,執(zhí)行到goto的語(yǔ)句時(shí),會(huì)跳轉(zhuǎn)到標(biāo)記的位置cout << "我是寶藏" << endl;cout << "女孩" << endl;goto baby;cout << "????????????" << endl;baby:cout << "的成長(zhǎng)日記" << endl;cout << "小伙伴你好啊" << endl;system("pause");return 0;}四、數(shù)組
A10數(shù)組的定義.cpp
#include <iostream> using namespace std;int main() {//數(shù)組/*數(shù)組的三種定義類型1、數(shù)據(jù)類型 數(shù)組名[數(shù)組長(zhǎng)度];2、數(shù)據(jù)類型 數(shù)組名[數(shù)組長(zhǎng)度]–{ 值1,值2 ...};3、數(shù)據(jù)類型 數(shù)組名[ ]= { 值1,值2 ...};*///3、時(shí)間關(guān)系就演示第三個(gè)(常用)int arr[] = { 1,2,5,34,344,221,666,777,9998 };for (int i = 0;i < 2; i++ ) {cout << arr[i] << endl;}/*數(shù)組名稱的作用:1、可以通過(guò)數(shù)組名統(tǒng)計(jì)整個(gè)數(shù)組占用內(nèi)存大小2、可以通過(guò)數(shù)組名查看數(shù)組首地址*///1、可以通過(guò)數(shù)組名統(tǒng)計(jì)整個(gè)數(shù)組占用內(nèi)存大小cout << "整個(gè)數(shù)組所占空間為" << sizeof(arr) << endl;cout << "第一個(gè)數(shù)組所占空間為" << sizeof(arr[0]) << endl;cout << "數(shù)組的元素個(gè)數(shù)為" << sizeof(arr)/ sizeof(arr[0]) << endl;//2、可以通過(guò)數(shù)組名查看數(shù)組首地址cout << "數(shù)組首地址為" << (int)arr << endl;cout << "數(shù)組第一個(gè)地址為" << (int)&arr[0] << endl;cout << "數(shù)組第二個(gè)地址為" << (int)&arr[0] << endl;//注意:數(shù)組名是常量不可以賦值system("pause");return 0;}A11八只狗狗比體重.cpp
#include <iostream> using namespace std;int main() {//八個(gè)小狗狗比體重//1、創(chuàng)建8個(gè)狗狗的體重的數(shù)組int arr[] = { 200,99,98,110,20,50,55,77 };//2、從數(shù)組中找到最大值int max = 0;//先認(rèn)定一個(gè)最大值為0for (int i = 0;i < 8;i++) {if (arr[i]>max) {max = arr[i];}}cout << "狗狗的體重最大值為" << max << endl;system("pause");return 0;}A12元素的逆置.cpp
此時(shí)此刻我看到這個(gè)代碼的心情是復(fù)雜的,因?yàn)槲乙郧昂孟窨嫉竭^(guò)這個(gè)代碼,仿佛遇見(jiàn)了前世的愛(ài)人那般熟悉。不過(guò)有個(gè)更簡(jiǎn)單方法(我記得是利用離散數(shù)學(xué)中的求逆,我之前寫(xiě)過(guò)這個(gè)代碼,懶得找了)
#include <iostream> using namespace std;int main() {//1、實(shí)現(xiàn)12345的逆置//1、創(chuàng)建數(shù)組int arr[] = { 1,2,3,4,5 };cout << "數(shù)組逆置前為" << endl;for (int i = 0;i < 5;i++) {cout << arr[i] << endl;}//2、實(shí)現(xiàn)逆置int start = 0;//初始位置為0//最后一個(gè)位置可以用整個(gè)數(shù)組的長(zhǎng)度除以第一個(gè)元素位置的長(zhǎng)度-1int end = sizeof(arr) / sizeof(arr[0]) - 1;//末尾位置while (start < end) {//實(shí)現(xiàn)元素互換int temp = arr[start];arr[start] = arr[end];arr[end] = temp;//下標(biāo)更新start++;end--;}//3、打印逆置后的數(shù)組cout << "數(shù)組逆置后為" << endl;for (int i = 0;i < 5;i++) {cout << arr[i] << endl;}system("pause");return 0;}https://blog.csdn.net/hanhanwanghaha寶藏女孩 歡迎您的關(guān)注!
歡迎關(guān)注微信公眾號(hào):寶藏女孩的成長(zhǎng)日記
讓這個(gè)可愛(ài)的寶藏女孩在努力的道路上與你一起同行!
如有轉(zhuǎn)載,請(qǐng)注明出處(如不注明,盜者必究)
A13冒泡排序.cpp
冒泡排序python版本
如果不懂話建議看一下王道數(shù)據(jù)結(jié)構(gòu)的講解,這個(gè)比較詳細(xì),這涉及到數(shù)據(jù)結(jié)構(gòu)的內(nèi)容。
這里安利一個(gè)之前我看到的各種排序算法動(dòng)畫(huà)演示過(guò)程
http://tools.jb51.net/static/api/paixu_ys/index.html
冒泡排序的具體過(guò)程
1.比較相鄰的元素。如果第一個(gè)比第二個(gè)大,就交換他們兩個(gè)。
2.對(duì)每一對(duì)相鄰元素做同樣的工作,執(zhí)行完畢后,找到第一個(gè)最大值。
3.重復(fù)以上的步驟,每次比較次數(shù)-1,直到不需要比較
A14二維數(shù)組的定義方式.cpp
1. 數(shù)據(jù)類型數(shù)組名[行數(shù)][列數(shù)];
2.數(shù)據(jù)類型數(shù)組名[行數(shù)][列數(shù)]= { {數(shù)據(jù)1,數(shù)據(jù)2},{數(shù)據(jù)3,數(shù)據(jù)4 } };
3.數(shù)據(jù)類型數(shù)組名[行數(shù)][列數(shù)]={數(shù)據(jù)1,數(shù)據(jù)2,數(shù)據(jù)3,數(shù)據(jù)4};
4.數(shù)據(jù)類型數(shù)組名[][列數(shù)]={數(shù)據(jù)1,數(shù)據(jù)2,數(shù)據(jù)3,數(shù)據(jù)4};
推薦用第二種
A14二維數(shù)組的數(shù)組名稱.cpp
#include <iostream> using namespace std;int main() {//二維數(shù)組名稱用途//1、可以查看占用內(nèi)存空間大小double arr[2][3]{{1,2,3},{4,5,6}};cout << "該二維數(shù)組的內(nèi)存空間大小為" <<sizeof(arr) << endl;cout << "該二維數(shù)組的第一行占用空間大小為" << sizeof(arr[0]) << endl;cout << "該二維數(shù)組的第一個(gè)元素占用空間大小為" << sizeof(arr[0][0]) << endl;cout << "二維數(shù)組的一共有多少個(gè)元素" << sizeof(arr) / sizeof(arr[0][0]) << endl;cout << "二維數(shù)組的行數(shù)為" << sizeof(arr) / sizeof(arr[0]) << endl;cout << "二維數(shù)組的列數(shù)為" << sizeof(arr[0]) / sizeof(arr[0][0]) << endl;//2、可以查看二維數(shù)組的首地址cout << "二維數(shù)組的首地址為" << (int)arr << endl;cout << "二維數(shù)組的第一行的首地址為" << (int)arr[0] << endl;cout << "二維數(shù)組的第二行的首地址為" << (int)arr[1] << endl;cout << "二維數(shù)組的第一個(gè)元素的首地址為" << (int)&arr[0][0] << endl;system("pause");return 0;}A16二維數(shù)組的應(yīng)用三位同學(xué)的總成績(jī).cpp
#include <iostream> using namespace std; #include <string>int main() {//二維數(shù)組的案例——三位同學(xué)的的三門課的總成績(jī)統(tǒng)計(jì)//1、創(chuàng)建二維數(shù)組int scores[3][3]{{100,99,99},{100,100,100},{16,89,100}};string names[3]{ "周杰倫","昆凌","蔡依林" };for (int i = 0;i < 3;i++) {int sum = 0;//統(tǒng)計(jì)分?jǐn)?shù)總和變量for (int j = 0;j < 3;j++) {sum += scores[i][j];}cout << names[i] << "的總成績(jī)?yōu)?#34; << sum << endl;}system("pause");return 0;}五、函數(shù)
函數(shù)說(shuō)白了就是封裝一個(gè)功能
函數(shù)的定義
A17函數(shù)的調(diào)用.cpp
#include <iostream> using namespace std; #include <string>//隨便定義一個(gè)加法函數(shù),num1和num2為形參 int add(int num1, int num2) {int sum = num1 + num2;return sum; };int main() {//在主函數(shù)中調(diào)用int a = 66;int b = 88;//函數(shù)調(diào)用方法:函數(shù)名稱(參數(shù))//ab為實(shí)參//當(dāng)調(diào)用函數(shù)時(shí),實(shí)參賦給形參int c = add(a, b);cout << "最終結(jié)果為:" << c << endl;system("pause");return 0;}A17函數(shù)的值傳遞.cpp
#include <iostream> using namespace std; #include <string>//值傳遞//定義函數(shù),實(shí)現(xiàn)兩個(gè)數(shù)字進(jìn)行交換函數(shù)//如果函數(shù)不需要返回值,聲明的時(shí)候可以寫(xiě)void void swap(int num1, int num2) {cout << "交換前" << endl;cout << "num1為" << num1 << endl;cout << "num2為" << num2 << endl;int temp = num1;num1 = num2;num2 = temp;cout << "交換后" << endl;cout << "num1為" << num1 << endl;cout << "num2為" << num2 << endl;}int main() {int a = 99;int b = 89;cout << "a:" << a << endl;cout << "b:" << a << endl;//當(dāng)我們做值傳遞的時(shí)候,函數(shù)的形參發(fā)生改變,并不會(huì)影響實(shí)參swap(a, b);cout << "a:" << a << endl;cout << "b:" << b << endl;system("pause");return 0;}A19函數(shù)的常見(jiàn)樣式.cpp
常見(jiàn)的函數(shù)樣式有4種
1.無(wú)參無(wú)返
2.有參無(wú)返
3.無(wú)參有返
4.有參有返
A20函數(shù)的分文件編寫(xiě).cpp
作用:讓代碼結(jié)構(gòu)更加清晰簡(jiǎn)潔
函數(shù)分文件編寫(xiě)─般有4個(gè)步驟
這種造型
A20函數(shù)的分文件編寫(xiě).cpp
#include <iostream> using namespace std; #include "swap.h"//函數(shù)的分文件編寫(xiě)//實(shí)現(xiàn)兩個(gè)數(shù)字進(jìn)行交換的函數(shù) 函數(shù)的聲明 //void swap(int num1, int num2); 函數(shù)的定義 //void swap(int num1, int num2) { // int temp = num1; // num1 = num2; // num2 = temp; // // // cout << "num1=" << num1 << endl; // cout << "num2=" << num2 << endl; //}int main() {int a = 99;int b = 88;swap(a,b);system("pause");return 0;}swap.h
#include <iostream> using namespace std;//函數(shù)的聲明 void swap(int num1, int num2);swap.cpp
#include "swap.h"//函數(shù)的定義 void swap(int num1, int num2) {int temp = num1;num1 = num2;num2 = temp;cout << "num1=" << num1 << endl;cout << "num2=" << num2 << endl; }六、指針
A21指針的定義和使用.cpp
#include <iostream> using namespace std;int main() {//1、定義指針int a = 10;//指針定義的語(yǔ)法:數(shù)據(jù)類型*指針變量名;int* p;//讓指針記錄變量a的地址p = &a;cout << "a的地址為" << &a << endl;cout << "指針p為" << p << endl;//2、使用指針//可以通過(guò) 解引用 的方式來(lái)找到指針指向的內(nèi)存//指針前加*代表解引用,找到指針指向的內(nèi)存中的數(shù)據(jù)*p = 888;cout << "a為" << a << endl;cout << "*p為" << *p << endl;system("pause");return 0;}A22指針內(nèi)存大小空指針野指針.cpp
#include <iostream> using namespace std;int main() {//不管是什么數(shù)據(jù)類型,要求熟記://在32位操作系統(tǒng)下,指針是占4個(gè)字節(jié)空間大小,//在64位操作系統(tǒng)下,指針是占8個(gè)字節(jié)空間大小cout << "sizeof(int *=)" << sizeof(int *) << endl;cout << "sizeof(float *=)" << sizeof(float *) << endl;cout << "sizeof(double *=)" << sizeof(double *) << endl;cout << "sizeof(char *=)" << sizeof(char *) << endl;//空指針//指針變量p指向內(nèi)存地址編號(hào)為0的空間int* p = NULL;//訪問(wèn)空指針報(bào)錯(cuò)//內(nèi)存編號(hào)0 ~255為系統(tǒng)占用內(nèi)存,不允許用戶訪問(wèn)//cout<<*p<<endl;//野指針:指針變量指向非法的內(nèi)存空間int* p = (int *)0x1100;//訪問(wèn)野指針運(yùn)行不出來(lái)cout << *p << endl;system("pause");return 0;}A23const修飾指針.cpp
const修飾指針有三種情況:
我自己是這么記的,誰(shuí)在后面誰(shuí)就可以變
#include <iostream> using namespace std;int main() {// 1、const修飾指針常量指針int a = 8;int b = 6;const int* p = &a;//指針指向的值不可以改,指針的指向可以改//* p = 20;錯(cuò)誤p = &b;//正確// 2、const修飾常量指針常量//指針的指向不可以改,指針指向的值可以改int* const p2 = &a;*p2 = 88;//p2 = &b;錯(cuò)誤//3、const修飾指針和常量const int* const p3 = &a;//指針的指向和指針指向的值都不可以改//*p3 =100;//錯(cuò)誤//p3 = &b;//錯(cuò)誤system("pause");return 0;}https://blog.csdn.net/hanhanwanghaha 寶藏女孩的成長(zhǎng)日記 歡迎您的關(guān)注!
歡迎關(guān)注微信公眾號(hào):寶藏女孩的成長(zhǎng)日記
讓這個(gè)可愛(ài)的寶藏女孩在努力的道路上與你一起同行!
如有轉(zhuǎn)載,請(qǐng)注明出處(如不注明,盜者必究)
終于寫(xiě)完了,完成任務(wù),看武林外傳去!
總結(jié)
以上是生活随笔為你收集整理的立志10天学会C++基础应用—day02 代码清晰易懂 涉及数据结构算法的知识 写完了~我也麻了的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: RT-Thread中如何预编译一个.c文
- 下一篇: (python3.8)pygraphvi