#include <iostream>
#include <string>
#include <array>
using namespace std;
// 创建数组actior, 30个char
// 创建数组chuck,13个float
void CreationArray(void);
// 创建一个结构体糖块CandyBar,包含三个成员,品牌,重量(浮点型),卡路里(整形)
// 声明结构体创建变量名为snack, 初始化值为Mocha Munch, 2.3, 500,最后显示变量
typedef struct CandyBar {
string brank;
double weight;
int calorie;
}sweets;
sweets CandyBarFunc(sweets snackNumber);
// typedef sweets *(candy)(sweets snackNumber);
// 编写一个程序,用户输入三次50的成绩,显示次数和平均成绩。使用array对象来存储数据
void GradeFunc(int* num, double* ave);
int main(void)
{
// char website[] = "sikiedu";
// cout << website << endl;
// c++
//int* p = NULL;
//if (NULL == p)
//{
// p = new int;
//}
//*p = 20;
//delete p;
//// c
//int* p1 = NULL;
//if (NULL == p1)
//{
// p1 = (int*)malloc(sizeof(int));
//}
//*p1 = 20;
//free(p1);
// c++11中新的数组创建方式:数组的模板类创建
//array<int, 20> a1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
//array<int, 20> a2 = { 0 };
//a2 = a1;
// 第二题
sweets snack;
snack.brank = "0";
snack.weight = 0.0;
snack.calorie = 0;
snack = CandyBarFunc(snack);
cout << "糖块的品牌:" << snack.brank << ",糖块的重量为:" << snack.weight << ",糖块的卡路里为:" << snack.calorie << "." << endl;
// 第三题
int num = 0;
double ave = 0;
GradeFunc(&num, &ave);
cout << "次数:" << num << ",平均成绩:" << ave << endl;
return 0;
}
void CreationArray(void)
{
char actior[30];
float chuck[13];
array<char, 30> actior1;
array<float, 13> chuck1;
char* actior2 = new char[30];
float* chuck2 = new float[13];
delete[] actior2;
delete[] chuck2;
char* actior3 = (char*)malloc(sizeof(char) * 30);
float* chuck3 = (float*)malloc(sizeof(float) * 13);
free(actior3);
free(chuck3);
}
sweets CandyBarFunc(sweets snackNumber)
{
snackNumber.brank = "Mocha Munch";
snackNumber.weight = 2.3;
snackNumber.calorie = 500;
return snackNumber;
}
void GradeFunc(int* num, double* ave)
{
const int temp = 3;
array<int, temp> number;
cout << "输入三次成绩:" << endl;
cout << "第一次:";
cin >> number[0];
cout << "第二次:";
cin >> number[1];
cout << "第三次:";
cin >> number[2];
*num = temp;
*ave = (number[0] + number[1] + number[2]) / temp;
}