C++学了一段时间了,现在在整理笔记,作为备份和分享,会一点点的连载上来,如果此时的你在看这篇文章,而且想学C/C++,本篇系列文章或许能帮助你打基础,为了方便大家,代码我也直接码在上面了,如果复制粘贴都懒得做的话,过段时间我会把整理好的代码打包传到下载里面。
第一部分 HelloWorld的起点
第二部分 初探数据类型(一)
第三部分 初探数据类型(二)
第四部分 认识运算符(一)
第五部分 认识运算符(二)
第六部分 理清思路,写好逻辑结构(一)
第七部分 理清思路,写好逻辑结构(二)
第八部分 理清思路,写好逻辑结构(三)
第九部分 数据处理神器之数组(一)
第十部分 数据处理神器之数组(二)
第十一部分 写好函数,学会功能复用(一)
第十二部分 写好函数,学会功能复用(二)
作用: 最常用的排序算法,对数组内的元素进行排序
示例: 将数组{4, 2, 8, 0, 5, 7, 8, 9, 6, 3, 1, 10, 12 }升序排列
#include
using namespace std;
int main() {
int arr[] = { 4, 2, 8, 0, 5, 7, 8, 9, 6, 3, 1, 10, 12 };
for (int i = 0; i <= sizeof(arr) / sizeof(arr[0]) - 1; i++) {
cout << arr[i] << " ";
}
//// 外层次数 = 元素个数 - 1
//for (int i = 0; i < 13 - 1; i++) {
// // 内层次数 = 元素个数 - 当前轮数 - 1
// for (int j = 0; j < 13 - 1 - i; j++) {
// if (arr[j] > arr[j + 1]) {
// int temp = arr[j];
// arr[j] = arr[j + 1];
// arr[j + 1] = temp;
// }
// }
//}
for (int i = 0; i <= sizeof(arr) / sizeof(arr[0])-2; i++) {
for (int j = 0; j <= sizeof(arr) / sizeof(arr[0]) - 2 - i; 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 <= sizeof(arr) / sizeof(arr[0]) - 1; i++) {
cout << arr[i] << " ";
}
cout << endl;
system("pause");
return 0;
}
二维数组就是在一维数组基础上,再增加加一个维度
二维数组有四种定义方式:
数据类型 数组名[行数][列数];
数据类型 数组名[行数][列数] = {{数据1, 数据2, ...},{数据3, 数据4, ...}, ..., {...}};
数据类型 数组名[行数][列数] = {数据1, 数据2, 数据3, 数据4, ...};
数据类型 数组名[][列数] = {数据1, 数据2, 数据3, 数据4, ...};
建议:以上四种定义方式,使用第二种更直观,可提高代码的可读性
示例:
#include
using namespace std;
int main() {
// 定义1
/*int arr[2][3];
arr[0][0] = 1;
arr[0][1] = 2;
arr[0][2] = 3;
arr[1][0] = 4;
arr[1][1] = 5;
arr[1][2] = 6;*/
// 定义2(推荐)
/*int arr[2][3] = {
{1, 2, 3},
{4, 5, 6}
};*/
// 定义3
//int arr[2][3] = { 1, 2, 3, 4, 5, 6 };
// 定义4
int arr[][3] = { 1, 2, 3, 4, 5, 6 };
// 输出1
/*cout << arr[0][0] << endl;
cout << arr[0][1] << endl;
cout << arr[0][2] << endl;
cout << arr[1][0] << endl;
cout << arr[1][1] << endl;
cout << arr[1][2] << endl;
*/
// 输出2
/*for (int i = 0; i <= 1; i++) {
for(int j = 0; j <= 2; j++){
cout << arr[i][j] << endl;
}
}*/
// 输出3
for (int i = 0; i <= 1; i++) {
for (int j = 0; j <= 2; j++) {
cout << arr[i][j] << " ";
}
cout << endl;
}
system("pause");
return 0;
}
示例:
#include
using namespace std;
int main() {
int arr[2][3] = {
{1, 2, 3},
{4, 5, 6}
};
// 查看内存大小
cout << "二维数组占用空间:" << sizeof(arr) << endl;
cout << "第一行占用空间:" << sizeof(arr[0]) << endl;
cout << "第一个元素占用空间:" << sizeof(arr[0][0]) << endl;
cout << "二维数组行数:" << sizeof(arr) / sizeof(arr[0]) << endl;
cout << "二维数组列数:" << sizeof(arr[0])/sizeof(arr[0][0]) << endl;
// 查看首地址
cout << "二维数组首地址:" << (int)arr << endl;
cout << "第二行首地址:" << (int)arr[1] << endl;
cout << "第二行第二列元素地址:" << (int)&arr[1][1] << endl;
system("pause");
return 0;
}
考试成绩统计:
案例描述:有三名同学(张三、李四、王五),在一次考试中成绩分别如下,请分别输出三名同学的成绩和总成绩
姓名 | 语文 | 数学 | 英语 |
---|---|---|---|
张三 | 100 | 100 | 100 |
李四 | 90 | 80 | 97 |
王五 | 80 | 70 | 60 |
示例:
#include
#include
using namespace std;
int main() {
int score[3][3] = {
{100, 100, 100},
{90, 80, 97},
{80, 70, 60}
};
string name[3] = { "张三", "李四", "王五" };
cout << "姓名\t语文\t数学\t英语\t总成绩" << endl;
for (int i = 0; i <= 2; i++){
cout << name[i] << "\t";
for (int j = 0; j <= 2; j++) {
cout << score[i][j] << "\t";
}
cout << score[i][0] + score[i][1] + score[i][2] << endl;
}
system("pause");
return 0;
}