- // 18 - 数组的第三种实现方式. cpp: 定义控制台应用程序的入口点.
- //
- #include "stdafx.h"
- #include <iostream>
- #include <climits>
- #include <array> // 引入模板类
- #include<string> // 引入 string 类库
- using namespace std;
- void CreateArray();
- void ShowSnack();
- void RunData();
- struct CandyBar
- {
- //char brand[20]={};
- string brand;
- float weight;
- int calorie;
- };
- struct TotalRun
- {
- float run1;
- float run2;
- float run3;
- };
- int main()
- {
- //C++11 最新的数组写法, 利用模板类.
- // 使用 array 创建数组的好处是数组之间可以互相赋值.
- array<int, 9> a1 = {2,34,234,12,645,123,654,36};// 未定义值默认为 0
- array<int, 9>a2;
- a2 = a1; // 将 a1 赋值给 a2
- cout <<a1[4] << " " << a2[4] << endl;
- cout << a1[8] << " " << a2[8] << endl;// 访问未赋值的元素.
- CreateArray();
- ShowSnack();
- RunData();
- int t;
- cin>> t;
- return 0;
- }
- //_______________________________________练习________________________________________________
- //1. 创建数组 actor, 里面有 30 个 char.
- // 创建数组 chuck, 里面有 13 个 float.
- void CreateArray()
- {
- // 创建数组有三种方式:
- // 方式 1 char actor[30]{}; // 传统的方式
- // 方式 2 char* actor=new char[30]; // 通过指针的方式主动申请内存创建数组
- /* 方式 3*/ array<char, 30> actor={}; // 通过 C++11 最新的 array 模板类来创建
- array<float, 13> chuck = {};
- // 给数组赋值:
- actor[2] ='6';
- chuck[12] = 15.6f;
- cout <<actor[2] << endl;
- cout << chuck[12] << endl;
- }
- //2. 创建一个结构体糖块 CandyBar, 里面包含三个成员. 第一个成员储存了糖块的品牌, 第二个成员储存了糖块的重量 (可以有小数), 第三个
- // 成员储存了糖块的卡路里 (整数). 编写一个程序, 声明这个结构. 创建一个名为 snack 的 CandyBar 变量, 初始化为 Mocha Munch,2.3,500.
- // 初始化应该声明 snack 的时候进行. 最后程序显示 snack 变量的内容.
- void ShowSnack()
- {
- CandyBar snack = {"Mocha Munch",2.3f,500 };
- cout <<snack.brand<<"" << snack.calorie <<" " << snack.weight << endl;
- }
- //3. 编写一个程序, 让用户输入三次 50 米跑的成绩, 显示次数和平均成绩. 使用 array 对象来储存数据.
- void RunData()
- {
- //TotalRun totalRun;
- //cout << "请输入第一次 50 米跑的成绩 (秒):";
- //cin>> totalRun.run1;
- //cout <<"请输入第二次 50 米跑的成绩 (秒):";
- //cin>> totalRun.run2;
- //cout <<"请输入第三次 50 米跑的成绩 (秒):";
- //cin>> totalRun.run3;
- //float average = (totalRun.run1 + totalRun.run2 + totalRun.run3) / 3;
- //cout <<"您一共跑了三次 50 米, 平均成绩为:" << average;
- array <float, 3> totalRun = {};
- cout <<"请输入第一次 50 米跑的成绩 (秒):";
- cin>> totalRun[0];
- cout <<"请输入第二次 50 米跑的成绩 (秒):";
- cin>> totalRun[1];
- cout <<"请输入第三次 50 米跑的成绩 (秒):";
- cin>> totalRun[2];
- cout << "您一共跑了三次 50 米, 平均成绩为:" << (totalRun[0] + totalRun[1] + totalRun[2]) / 3 << endl;
- }
来源: http://www.bubuko.com/infodetail-2694371.html