哈喽,很高兴又见面啦,一起加油一起学习,欢迎您的关注!https://blog.csdn.net/hanhanwanghaha学习路上有您的关注是我的荣幸,一起进步是我的动力,明天也一起加油啊!
立志10天学会C++基础应用—day01
文章目录以往链接 一、循环结构
A01while循环.cppA02while猜数字.cppA03dowhile循环.cppA04dowhile水仙花数.cppA05for循环敲桌子案例.cpp 二、嵌套循环
A06嵌套循环星星图.cppA06嵌套循环乘法口诀表.cpp 三、跳转语句
A07跳转语句break.cppA08跳转语句continue.cppA09跳转语句goto.cpp 四、数组
A10数组的定义.cppA11八只狗狗比体重.cppA12元素的逆置.cppA13冒泡排序.cppA14二维数组的定义方式.cppA14二维数组的数组名称.cppA16二维数组的应用三位同学的总成绩.cpp 五、函数
A17函数的调用.cppA17函数的值传递.cppA19函数的常见样式.cppA20函数的分文件编写.cpp 六、指针
A21指针的定义和使用.cppA22指针内存大小空指针野指针.cppA23const修饰指针.cpp
一、循环结构 A01while循环.cpp#includeA02while猜数字.cppusing namespace std; int main() { int num = 0; num++; //()中填入循环条件 //语法:while(循环条件){循环语句} while (num < 10) { num *= 2; cout << num << endl; } system("pause"); return 0; }
#includeA03dowhile循环.cppusing namespace std; #include int main() { //添加随机数种子,作用利用当前系统时间生成随机数,防止每次随机数都一样‘ srand((unsigned int)time(NULL)); //1、系统生成0到99的随机数 int num = rand() % 100; //cout << num << endl; //2、玩家进行猜测 cout << "请输入你猜的数" << endl; int ans = 0; //3、判断玩家的猜测 //while死循环,等待中断信号 while (1) { cin >> ans; if (ans num) { cout << "猜测过大,请你再猜一遍" << endl; } else { cout << "恭喜您猜对了" << endl; break;//中断信号 } } //猜对 退出游戏 //猜错 提示猜的结果 过大或者过小 重新返回第二步 system("pause"); return 0; }
用这个写了一个死循环,无聊到爆~今天的白日梦乐趣
#includeA04dowhile水仙花数.cppusing namespace std; int main() { int num = 0; //此时的num不为0,结果会陷入死循环 //与while的区别:把上面的注释掉,这两个分别运行一下就知道了 //其实就是do{}多了一个执行条件 while(num) { cout << "噩梦" << num << "个" << endl; num --; } system("pause"); return 0; }
#includeA05for循环敲桌子案例.cppusing namespace std; int main() { //查询100到999中的所有水仙花数 int num = 100; do { int a = 0;//个位 int b = 0;//十位 int c = 0;//百位 a = num % 10;//提取个位的数 b = num / 10 % 10;//提取十位的数 c = num / 100 % 10;//提取百位的数 if (a * a * a + b * b * b + c * c * c == num) { //如果是水仙花数,就打印 cout << num << endl; } num++; } while (num < 1000); system("pause"); return 0; }
案例描述:从1开始数到数字100,如果数字个位含有7,或者数字十位含有7,或者该数字是7的倍数,我们打印敲桌子,其余数字直接打印输出。
#include二、嵌套循环 A06嵌套循环星星图.cppusing namespace std; int main() { //语法:for(起始表达式:条件表达式:末尾表达式){循环语句} for (int i = 0;i <= 100;i++) { //数字个位含有7,或者数字十位含有7,或者该数字是7的倍数 if (i / 7 == 0 || i / 10 ==7 || i % 7 == 0) { cout << "敲桌子" << endl; } else { cout << i << endl; } } system("pause"); return 0; }
打印一个星星图
#includeA06嵌套循环乘法口诀表.cppusing namespace std; int main() { //打印一个星星图 for (int i = 0;i < 10;i++) { //内层循环 for (int j = 0;j < 10;j++) { cout << "*"; } cout << endl; } system("pause"); return 0; }
#includeusing namespace std; int main() { //乘法口诀表 //打印行数 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; }
欢迎关注:https://blog.csdn.net/hanhanwanghaha
三、跳转语句 A07跳转语句break.cpp#includeA08跳转语句continue.cppusing namespace std; int main() { //break的几种用法 //1、出现在switch中 cout << "请选择您的成绩等级" << endl; cout << "1、A" << endl; cout << "2、B" << endl; cout << "3、C" << endl; //创建结果的变量 int grade = 0; //用户输入等级 cin >> grade; switch (grade) { case 1: cout << "您可以读市重点" << endl; break; case 2: cout << "您可以读区重点" << endl; break; case 3: cout << "您可以读乡镇学校" << endl; break; default: break; } //2、出现在for循环中 for (int i = 0; i < 10; i++) { if (i == 7) { break; } cout << i << endl; } //3、出现在嵌套循环语句中 for (int i = 0;i < 10;i++) { //内层循环 for (int j = 0;j < 10;j++) { if (j == 5) { break; } cout << "*"; } cout << endl; } system("pause"); return 0; }
执行到continue那一行,就不会执行后面的了,然后循环前面的
#includeA09跳转语句goto.cppusing namespace std; int main() { //continue语句 for (int i = 0;i <= 100;i++) { //结果是奇数输出,偶数不输出 if (i % 2 == 0) { continue; } cout << i << endl; } system("pause"); return 0; }
#include四、数组 A10数组的定义.cppusing namespace std; int main() { //语法:goto 标记 //如果标记的名称存在,执行到goto的语句时,会跳转到标记的位置 cout << "我是宝藏" << endl; cout << "女孩" << endl; goto baby; cout << "❥❥❥❥❥❥❥❥❥❥❥❥" << endl; baby: cout << "的成长日记" << endl; cout << "小伙伴你好啊" << endl; system("pause"); return 0; }
#includeA11八只狗狗比体重.cppusing namespace std; int main() { //数组 //3、时间关系就演示第三个(常用) int arr[] = { 1,2,5,34,344,221,666,777,9998 }; for (int i = 0;i < 2; i++ ) { cout << arr[i] << endl; } //1、可以通过数组名统计整个数组占用内存大小 cout << "整个数组所占空间为" << sizeof(arr) << endl; cout << "第一个数组所占空间为" << sizeof(arr[0]) << endl; cout << "数组的元素个数为" << sizeof(arr)/ sizeof(arr[0]) << endl; //2、可以通过数组名查看数组首地址 cout << "数组首地址为" << (int)arr << endl; cout << "数组第一个地址为" << (int)&arr[0] << endl; cout << "数组第二个地址为" << (int)&arr[0] << endl; //注意:数组名是常量不可以赋值 system("pause"); return 0; }
#includeA12元素的逆置.cppusing namespace std; int main() { //八个小狗狗比体重 //1、创建8个狗狗的体重的数组 int arr[] = { 200,99,98,110,20,50,55,77 }; //2、从数组中找到最大值 int max = 0;//先认定一个最大值为0 for (int i = 0;i < 8;i++) { if (arr[i]>max) { max = arr[i]; } } cout << "狗狗的体重最大值为" << max << endl; system("pause"); return 0; }
此时此刻我看到这个代码的心情是复杂的,因为我以前好像考到过这个代码,仿佛遇见了前世的爱人那般熟悉。不过有个更简单方法(我记得是利用离散数学中的求逆,我之前写过这个代码,懒得找了)
#includeusing namespace std; int main() { //1、实现12345的逆置 //1、创建数组 int arr[] = { 1,2,3,4,5 }; cout << "数组逆置前为" << endl; for (int i = 0;i < 5;i++) { cout << arr[i] << endl; } //2、实现逆置 int start = 0;//初始位置为0 //最后一个位置可以用整个数组的长度除以第一个元素位置的长度-1 int end = sizeof(arr) / sizeof(arr[0]) - 1;//末尾位置 while (start < end) { //实现元素互换 int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; //下标更新 start++; end--; } //3、打印逆置后的数组 cout << "数组逆置后为" << endl; for (int i = 0;i < 5;i++) { cout << arr[i] << endl; } system("pause"); return 0; }
A13冒泡排序.cpphttps://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
让这个可爱的宝藏女孩在努力的道路上与你一起同行!
如有转载,请注明出处(如不注明,盗者必究)
冒泡排序python版本
如果不懂话建议看一下王道数据结构的讲解,这个比较详细,这涉及到数据结构的内容。
这里安利一个之前我看到的各种排序算法动画演示过程
http://tools.jb51.net/static/api/paixu_ys/index.html
冒泡排序的具体过程
1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2.对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值。
3.重复以上的步骤,每次比较次数-1,直到不需要比较
#includeA14二维数组的定义方式.cppusing namespace std; int main() { int arr[] = { 99,33,45,22,556,775,32,45,66 }; cout<<"排序前" << endl; for (int i = 0;i < 9;i++) { cout<< arr[i]<<" "; } cout<< endl; //开始冒泡排序 //排序总轮数 = 元素个数 - 1;(这个注释看不懂的话就拿几个数验证一遍就知道了) for (int i = 0;i < 9 - 1;i++) { //内层循环:每轮对比次数=元素个数–排序轮数–1 : for (int j = 0;j < 9 - i - 1;j++) { //如果前一个数字比后一个数字大,那么交换两个数字 if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } cout << "排序后" << endl; for (int i = 0;i < 9;i++) { cout << arr[i] << " "; } system("pause"); return 0; }
1. 数据类型数组名[行数][列数];
2.数据类型数组名[行数][列数]= { {数据1,数据2},{数据3,数据4 } };
3.数据类型数组名[行数][列数]={数据1,数据2,数据3,数据4};
4.数据类型数组名[][列数]={数据1,数据2,数据3,数据4};
推荐用第二种
#includeA14二维数组的数组名称.cppusing namespace std; int main() { //2.数据类型数组名[行数][列数]= { {数据1,数据2},{数据3,数据4 } }; int arr1[2][3] = { {1,2,3}, {4,5,6} }; for (int i = 0;i < 2;i++) { for (int j = 0;j < 3;j++) { cout << arr1[i][j] << " "; } cout<< endl; } //3.数据类型数组名[行数][列数] = { 数据1,数据2,数据3,数据4 }; int arr2[2][2] = { 1234 }; for (int i = 0;i < 2;i++) { for (int j = 0;j < 2;j++) { cout << arr1[i][j] << " "; } cout << endl; } system("pause"); return 0; }
#includeusing namespace std; int main() { //二维数组名称用途 //1、可以查看占用内存空间大小 double arr[2][3]{ {1,2,3}, {4,5,6} }; cout << "该二维数组的内存空间大小为" < A16二维数组的应用三位同学的总成绩.cpp #include五、函数using namespace std; #include int main() { //二维数组的案例——三位同学的的三门课的总成绩统计 //1、创建二维数组 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;//统计分数总和变量 for (int j = 0;j < 3;j++) { sum += scores[i][j]; } cout << names[i] << "的总成绩为" << sum << endl; } system("pause"); return 0; } 函数说白了就是封装一个功能
A17函数的调用.cpp
函数的定义
#includeA17函数的值传递.cppusing namespace std; #include //随便定义一个加法函数,num1和num2为形参 int add(int num1, int num2) { int sum = num1 + num2; return sum; }; int main() { //在主函数中调用 int a = 66; int b = 88; //函数调用方法:函数名称(参数) //ab为实参 //当调用函数时,实参赋给形参 int c = add(a, b); cout << "最终结果为:" << c << endl; system("pause"); return 0; } #includeA19函数的常见样式.cppusing namespace std; #include //值传递 //定义函数,实现两个数字进行交换函数 //如果函数不需要返回值,声明的时候可以写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; //当我们做值传递的时候,函数的形参发生改变,并不会影响实参 swap(a, b); cout << "a:" << a << endl; cout << "b:" << b << endl; system("pause"); return 0; } 常见的函数样式有4种
1.无参无返
2.有参无返
3.无参有返
4.有参有返#includeusing namespace std; //1、无参无返 void test1() { cout << "哈喽 小姐姐你好!" << endl; } //2、有参无返 void test2(int a) { cout << "哈喽 小姐姐你好!我已经" < A20函数的分文件编写.cpp 作用:让代码结构更加清晰简洁
函数分文件编写─般有4个步骤创建后缀名为.h的头文件创建后缀名为.cpp的源文件在头文件中写函数的声明在源文件中写函数的定义
这种造型
A20函数的分文件编写.cpp
#includeusing namespace std; #include "swap.h" //函数的分文件编写 //实现两个数字进行交换的函数 函数的声明 //void swap(int num1, int num2); 函数的定义 //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
#includeusing namespace std; //函数的声明 void swap(int num1, int num2); swap.cpp
#include "swap.h" //函数的定义 void swap(int num1, int num2) { int temp = num1; num1 = num2; num2 = temp; cout << "num1=" << num1 << endl; cout << "num2=" << num2 << endl; }六、指针 A21指针的定义和使用.cpp#includeA22指针内存大小空指针野指针.cppusing namespace std; int main() { //1、定义指针 int a = 10; //指针定义的语法:数据类型*指针变量名; int* p; //让指针记录变量a的地址 p = &a; cout << "a的地址为" << &a << endl; cout << "指针p为" << p << endl; //2、使用指针 //可以通过 解引用 的方式来找到指针指向的内存 //指针前加*代表解引用,找到指针指向的内存中的数据 *p = 888; cout << "a为" << a << endl; cout << "*p为" << *p << endl; system("pause"); return 0; } #includeusing namespace std; int main() { //不管是什么数据类型,要求熟记: //在32位操作系统下,指针是占4个字节空间大小, //在64位操作系统下,指针是占8个字节空间大小 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指向内存地址编号为0的空间 int* p = NULL; //访问空指针报错 //内存编号0 ~255为系统占用内存,不允许用户访问 //cout<<*p< A23const修饰指针.cpp const修饰指针有三种情况:
const修饰指针—常量指针const修饰常量—指针常量工const既修饰指针,又修饰常量
我自己是这么记的,谁在后面谁就可以变
#includeusing namespace std; int main() { // 1、const修饰指针常量指针 int a = 8; int b = 6; const int* p = &a; //指针指向的值不可以改,指针的指向可以改 //* p = 20;错误 p = &b;//正确 // 2、const修饰常量指针常量 //指针的指向不可以改,指针指向的值可以改 int* const p2 = &a; *p2 = 88; //p2 = &b;错误 //3、const修饰指针和常量 const int* const p3 = &a; //指针的指向和指针指向的值都不可以改//*p3 =100;//错误 //p3 = &b;//错误 system("pause"); return 0; } https://blog.csdn.net/hanhanwanghaha 宝藏女孩的成长日记 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
让这个可爱的宝藏女孩在努力的道路上与你一起同行!
如有转载,请注明出处(如不注明,盗者必究)终于写完了,完成任务,看武林外传去!



