C++ Primer Plus 编程练习题 第四章 复合类型

1.字符数组

#include <iostream>
using namespace std;

int main() 
{
	char first_name[15];
	cout << "what is your first name?";
	cin.getline(first_name,15);
	cout << "what is your last name?";
	char last_name[15];
	cin.getline(last_name, 15);
	char grade;
	cout << "what letter grade do you deserve?";
	cin>>grade;
	int age;
	cout << "what is your age?";
	cin>>age;
	cout << "name:" << last_name << "," << first_name<<"\n";
	cout << "grade:" << char(int(grade) +1)<<"\n";
	cout << "age:" << age;
	return 0;
}

2.char 数组改 string

string类中的getline方法和iostream类中的getline方法不同

#include <iostream>
#include<string>
using namespace std;

int main() 
{
	string name;
	string dessert;
	cout << "Enter your name:\n";
	getline(cin,name);
	cout << "Enter your favorite dessert:\n";
	getline(cin,dessert);
	cout << "i have some delicious " << dessert;
	cout << "for you " << name << "\n";
	return 0;
}

3.char数组方式利用cstring中的函数进行字符串组合

#include <iostream>
#include<cstring>
using namespace std;

int main() 
{
	char fir_name[20];
	cout << "Enter your first name: ";
	cin >> fir_name;
	char las_name[20];
	cout << "Enter your last name: ";
	cin >> las_name;
	char name[20];
	strcpy_s(name, las_name);
	strcat_s(name, ", ");
	strcat_s(name, fir_name);
	cout<<"here is the information in a single string: "<<name;
	return 0;
}

4.string方式进行字符串组合

#include <iostream>
#include<string>
using namespace std;

int main() 
{
	string fir_name;
	cout << "Enter your first name: ";
	cin >> fir_name;
	string las_name;
	cout << "Enter your last name: ";
	cin >> las_name;
	string name;
	name = las_name + ", " + fir_name;
	cout<<"here is the information in a single string: "<<name;
	return 0;
}

5.CandyBar糖果结构

#include <iostream>
#include <string>;
using namespace std;

struct Candybar 
{
	string brand;
	float weight;
	int calories;
};

int main() 
{
	Candybar snack = { "Mocha Munch",2.3,350 };
	cout << "snack 的品牌为: " << snack.brand<<"\n";
	cout << "snack 的重量为: " << snack.weight<<"\n";
	cout << "snack 的卡路里为: " << snack.calories;
	return 0;
}

6.CandyBar糖果结构数组

#include <iostream>
#include <string>;
using namespace std;

struct Candybar 
{
	string brand;
	float weight;
	int calories;
};

int main() 
{
	Candybar snack[3] =
	{
		{"Mocha Munch", 2.3, 350},
		{"Ssadno Csnaod",2.4,56},
		{"Asnado Mdasijo",2.5,780}
	};
	cout << "Mocha Munch的卡路里为: " << snack[0].calories << "\n";
	cout << "Ssadno Csnaod的重量为: " << snack[1].weight << "\n";
	cout << "Asnado Mdasijo的品牌为: " << snack[2].brand;
	return 0;
}

7.披萨饼分析

#include <iostream>
#include <string>;
using namespace std;

struct Pizza
{
	string brand;
	float weight;
	int d;
};

int main() 
{
	Pizza piz;
	cout << "请输入披萨的品牌:";
	getline(cin, piz.brand);
	cout << "请输入披萨的直径:";
	cin>>piz.d;
	cout << "请输入披萨的重量:";
	cin >> piz.weight;
	cout << "\n" << "披萨的品牌为: " << piz.brand<<"\n";
	cout << "披萨的直径为: " << piz.d << "\n";
	cout << "披萨的重量为: " << piz.weight;
	return 0;
}

8.披萨饼new

使用动态结构的方式,只能使用指针来指向成员,不声明成员变量

#include <iostream>
#include <string>;
using namespace std;

struct Pizza
{
	string brand;
	float weight;
	int d;
};

int main()
{
	Pizza* piz = new Pizza;
	cout << "请输入披萨的直径:";
	cin >> piz->d;
	cin.get();
	cout << "请输入披萨的品牌:";
	getline(cin, piz->brand);
	cout << "请输入披萨的重量:";
	cin >> piz->weight;
	cout << "\n" << "披萨的品牌为: " << piz->brand << "\n";
	cout << "披萨的直径为: " << piz->d << "\n";
	cout << "披萨的重量为: " << piz->weight;
	delete piz;
	return 0;
}

9.CandyBar糖果new

使用new进行动态数组分配,数组名就是指针

#include <iostream>
#include <string>;
using namespace std;

struct Candybar
{
	string brand;
	float weight;
	int calories;
};

int main()
{
	Candybar* snack = new Candybar[3];
	snack->brand = "sajdioas saijdoas";
	(*(snack+1)).weight = 15.86;
	snack[2].calories = 16;
	cout << "snack[0]的品牌为:" << snack[0].brand<<"\n";
	cout << "snack[1]的品牌为:" << snack[1].weight<<"\n";
	cout << "snack[2]的品牌为:" << snack[2].calories;
	delete [] snack;
	return 0;
}

10.40米跑

使用array实现定长数组,vector实现动态数组

#include <iostream>
#include <array>;
using namespace std;

int main()
{
	array<float, 3>score;
	cout << "请输入第一次40米跑的成绩:";
	cin >> score[0];
	cout << "请输入第二次40米跑的成绩:";
	cin >> score[1];
	cout << "请输入第三次40米跑的成绩:";
	cin >> score[2];
	cout << "三次平均成绩为" << (score[1] + score[0] + score[2]) / 3;
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值