project_study7.cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
// 二维数组 —— 在一维数组的基础上增加一个维度
// 四种定义方式:
// ① 数据类型 数组名[行数][列数];
// ② 数据类型 数据名[行数][列数] = {{ 数据1, 数据2.。。},{数据3, 数据4.。。。。}}
// ③ 数据类型 数据名[行数][列数] = { 数据1, 数据2 ,数据3, 数据4.。。。。}
// ④ 数据类型 数据名[ ][列数] = { 数据1, 数据2 ,数据3, 数据4.。。。。}
// 第二种方式定义的二维数组可读性高
// 第一种方式定义及输出
cout << " 第一种方式定义的数组为 : " << endl;
int arr0[2][3];
arr0[0][0] = 1, arr0[0][1] = 2, arr0[0][2] = 3;
arr0[1][0] = 4, arr0[1][1] = 5, arr0[1][2] = 6;
for (int num0 = 0; num0 < 2; num0++) {
for (int num1 = 0; num1 < 3; num1++) {
cout << arr0[num0][num1] << "\t";
}
cout << endl;
}
cin.get();
// 第二种方式定义及输出
cout << " 第二种方式定义的数组为 : " << endl;
int arr1[2][3] =
{
{ 1 , 2 , 3 },
{ 4 , 5 , 6 }
};
for (int num2 = 0; num2 < 2; num2++) {
for (int num3 = 0; num3 < 3; num3++) {
cout << arr1[num2][num3] << "\t";
}
cout << endl;
}
cin.get();
// 第三种方式定义及输出
cout << " 第三种方式定义的数组为 : " << endl;
int arr2[2][3] ={ 1 , 2 , 3 ,4 , 5 , 6 };
for (int num4 = 0; num4 < 2; num4++) {
for (int num5 = 0; num5 < 3; num5++) {
cout << arr1[num4][num5] << "\t";
}
cout << endl;
}
cin.get();
// 第四种方式定义及输出
cout << " 第四种方式定义的数组为 : " << endl;
int arr3[ ][3] = { 1 , 2 , 3 ,4 , 5 , 6 }; // 行数可以不写,列数必须有
for (int num6 = 0; num6 < 2; num6++) {
for (int num7 = 0; num7 < 3; num7++) {
cout << arr1[num6][num7] << "\t";
}
cout << endl;
}
cin.get();
// 二维数组名称的作用
// ① 查看二维数组所占的内存空间 ② 查看首地址
int arr4[2][3] =
{
{ 11 , 22 , 33 },
{ 44 , 55 , 66 }
};
cout << "该二维数组占用的内存空间为:" << sizeof(arr4) << endl;
// 看二维数组某行所占用的内存空间
cout << "该二维数组第0行占用的内存空间为:" << sizeof(arr4[0]) << endl;
// 看二维数组某元素所占用的内存空间
cout << "该二维数组第0行第0列占用的内存空间为:" << sizeof(arr4[0][0]) << endl;
// 看二维数列数
cout << "该二维数组列数为:" << ((sizeof(arr4[0])) / (sizeof(arr4[0][0] ) ))<< endl;
// 看二维数行数
cout << "该二维数组行数为:" << ((sizeof(arr4)) / (sizeof(arr4[0]))) << endl;
// 查看二维数组首地址
cout << "该二维数组首地址为:" << arr4 << endl;
cout << "对应的十进制为: " << (int)arr4 << endl;
// 查看二维数组某行首地址
cout << "该二维数组第一行首地址为:" << arr4[0] << endl;
cout << "对应的十进制为: " << (int)arr4[0] << endl;
// 查看二维数组某行首地址
cout << "该二维数组第二行首地址为:" << arr4[1] << endl;
cout << "对应的十进制为: " << (int)arr4[1] << endl;
// 查看某元素首地址
cout << "该二维数组第二行第二列元素的首地址为:" << &arr4[1][1] << endl;
cout << "对应的十进制为: " << (int)&arr4[1][1] << endl;
cin.get();
// 考试成绩统计案例
int test_score[3][3] = {
{ 100 , 100 , 100 } ,
{ 90 , 50 , 100 } ,
{ 60 , 70 , 80 }
};
string names[3] = { "张三" , "李四", "王五 " }; // 定义学生姓名列表
cout << "\t" << "语文\t" << "数学\t" << "英语\t" << "总分\t" << endl; //打印成绩表头
for (int num8 = 0; num8 < 3; num8++) {
cout << names[num8] << "\t"; // 先打印学生姓名
int sum = 0; // 定义总分变量
for (int num9 = 0; num9 < 3; num9++) {
cout << test_score[num8][num9] << "\t"; // 打印各科目成绩
sum += test_score[num8][num9]; // 计算总成绩
}
cout << sum << "\t" << endl; // 打印总成绩并换行
}
cin.get();
cin.get();
return 0;
}
mul.cpp
# include "mul.h"
// .cpp 要定义一个自己的头文件
void mul(int num10, int num11) {
cout << num10 << " * " << num11 << " = " << (num10 * num11) << endl;
}
mul.h
# include <iostream>
using namespace std;
// 头文件中要有预编译和命名空间代码
// 函数的分文件编写
void mul(int num10, int num11);