c++ primer plus(第6版)中文版 第四章编程练习答案

第四章编程练习答案

4.1接收姓名,成绩等级和年龄,输出时成绩等级下调

//4.1接收姓名,成绩等级和年龄,输出时成绩等级下调
#include <iostream>
#include <string>
using namespace std;

int main () 
{     
	string Firstname,Lastname;
	cout << "What is your first name? ";
	getline(cin, Firstname);	
	cout << "What is your last name? ";
	cin >> Lastname;
	char	chgrade;
	cout << "What letter grade do you deserve? ";
	cin >> chgrade;
	unsigned	int Age;
	cout << "What is your age? ";
	cin >> Age;
	cout << "Name: " << Lastname << "   " << Firstname << endl;
	cout << "Grade: " << char(chgrade + 1) << endl;
	cout << "Age: " << Age << endl;
} 

4.2用c++ string类改写程序清单4.4

//4.2用c++ string类改写程序清单4.4
#include <iostream>
#include <string>
using namespace std;

int main () 
{     
	string Name;
	cout << "Enter your name: ";
	cin >> Name;
	string Dessert;
	cout << "Enter your favorite dessert: ";
	cin >> Dessert;
	cout << "I have some delicious " << Dessert;
	cout << " for you, " << Name << endl;
} 

4.3输入名和姓,输出“名, 姓”(用cstring和char数组)

//4.3输入名和姓,输出“名, 姓”(用cstring和char数组)
#include <iostream>
#include <cstring>
using namespace std;

int main () 
{ 
	char	firstname[20],lastname[20],name[40];
	cout << "Enter your first name: ";
	cin.getline(firstname,20);
	cout << "Enter your last name: ";
	cin.getline(lastname, 20);
	strcpy(name, lastname);
	strcat(name, ", ");
	strcat(name, firstname);
	cout << "Here’s the information in a single string: " << name << endl;
} 


4.4输入名和姓,输出“名, 姓”(用string类和函数)

//4.4输入名和姓,输出“名, 姓”(用string类和函数)
#include <iostream>
#include <string>
using namespace std;

int main () 
{     
	string firstname,lastname,name;
	cout << "Enter your first name: ";
	cin >> firstname;
	cout << "Enter your last name: ";
	cin >> lastname;
	name += firstname + ','  + lastname;
	cout << "Here’s the information in a single string: " << name << endl;
} 

4.5建立结构体CandyBar,包括品牌,重量,卡路里3个成员,初始化并输出

//4.5建立结构体CandyBar,包括品牌,重量,卡路里3个成员,初始化并输出
#include <iostream>
#include <string>
using namespace std;

struct CandyBar
{
	string name;
	double	weight;
	double	calories;
};

int main () 
{     
	CandyBar	snack = {"Mocha Munch", 2.3, 350};
	cout << snack.name << "\n" << snack.weight << "\n" << snack.calories << endl; 
} 

4.6结构体同题4.5,初始化为3个元素并输出


//4.6结构体同题4.5,初始化为3个元素并输出
#include <iostream>
#include <string>
using namespace std;

struct CandyBar
{
	string name;
	double	weight;
	double	calories;
};

int main (void) 
{     
	CandyBar	snack[] =	{	{"A", 1, 10},
										{"B", 2, 20},
										{"C", 3, 30}	};
	cout << snack[0].name << "\t" << snack[0].weight << "\t" << snack[0].calories << endl; 
	cout << snack[1].name << "\t" << snack[1].weight << "\t" << snack[1].calories << endl; 
	cout << snack[2].name << "\t" << snack[2].weight << "\t" << snack[2].calories << endl; 
} 

4.7Pizza有三个记录值(公司名称,直径,重量),主函数可输入可输出

//4.7Pizza有三个记录值(公司名称,直径,重量),主函数可输入可输出
#include <iostream>
#include <string>
using namespace std;

struct Pizza
{
	string company_name;
	double	diameter;
	double	weight;
};

int main () 
{     
	Pizza	pizza;
	cout << "输入披萨名:";
	getline(cin, pizza.company_name);
	cout << "输入披萨直径(厘米):";
	cin >> pizza.diameter;
	cout << "输入披萨重量(克):";
	cin >> pizza.weight;
	cout << pizza.company_name << "公司出品直径为" << pizza.diameter << "厘米重量为" << pizza.weight << "克的披萨" << endl;
} 

4.8对4.7的结构体用new来分配内存

//4.8对4.7的结构体用new来分配内存
#include <iostream>
#include <string>
using namespace std;

struct	Pizza
{
	string	company_name;
	double	diameter;
	double	weight;
};

int main () 
{     
	Pizza*	pizza = new Pizza;
	cout << "输入披萨直径(厘米):";
	cin >> pizza->diameter;	// 回车符仍保留在输入流中
	cin.get();  //取先前的回车符
	cout << "输入披萨名:";
	getline(cin, pizza->company_name);
	cout << "输入披萨重量(克):";
	cin >> pizza->weight;
	cout << pizza->company_name << "公司出品直径为" << pizza->diameter << "厘米重量为" << pizza->weight << "克的披萨" << endl;
	delete pizza;
	pizza = NULL;
} 

4.9对4.6使用new分配内存

//4.9对4.6使用new分配内存
#include <iostream>
#include <string>
using namespace std;

struct CandyBar
{
	string	name;
	double	weight;
	double	calories;
};

int main () 
{     
	CandyBar* candybar_list = new CandyBar [3];

	candybar_list[0].name = "A";
	candybar_list[0].weight = 1;
	candybar_list[0].calories = 10;

	candybar_list[1].name = "B";
	candybar_list[1].weight = 2;
	candybar_list[1].calories = 20;
	
	candybar_list[2].name = "C";
	candybar_list[2].weight = 3;
	candybar_list[2].calories = 20;

	cout << candybar_list[0].name << "\t" << candybar_list[0].weight << "\t" << candybar_list[0].calories << endl; 
	cout << candybar_list[1].name << "\t" << candybar_list[1].weight << "\t" << candybar_list[1].calories << endl; 
	cout << candybar_list[2].name << "\t" << candybar_list[2].weight << "\t" << candybar_list[2].calories << endl; 

	delete [] candybar_list;
} 

4.10请用户输入3次成绩,显示次数和平均成绩

//4.10请用户输入3次成绩,显示次数和平均成绩(array为c++11新加标准,vector可通用)
#include <iostream>
//#include <vector>
#include <array>
using namespace std;

int main () 
{
	//vector<double> dash(3);
	array<double,3> dash;
	 for(int i=0;i<3;i++)  
     {  
		cout<<"Enter the "<<i+1<<" time :";  
        cin>>dash[i];
     }  
	cout << "共计输入3次短跑成绩,平均分为" << (dash[0] + dash[1] + dash[2]) / 3 << endl;
} 


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值