《C++ Primer Plus》第四章 复合类型 4.13编程练习答案

本篇博客提供了一系列C++编程练习,包括请求并显示用户信息、使用string和char数组组合姓名、操作CandyBar结构体、设计披萨饼信息结构、动态分配内存以及处理数组数据等。通过这些练习,读者可以深入理解C++中复合类型的运用。
摘要由CSDN通过智能技术生成

1.编写一个C++程序,如下述输出示例所示的那样请求并显示信息:
What is your first name? Betty Sue
What is your last name? Yewe
What letter garde do you deserve? B
What is your age? 22
Name: Yewe,Betty Sue
Grade: C
Age: 22

#include <iostream>
#include <string>
using namespace std;
int main()
{
   
	string firstName = " ";
	string lastName = " ";
	cout << "What is your first name?";
	getline(cin, firstName);
	cout << "What is your last name?";
	getline(cin, lastName);
	cout << "What letter grade do you deserve?";
	char grade;
	cin >> grade;
	grade++;
	cout << "What is your age?";
	int age;
	cin >> age;
	cin.get();
	cout << "Name: " << lastName << "," << firstName << endl;
	cout << "Grade: " << grade << endl;
	cout << "Age: " << age << endl;
	cin.get();
	return 0;
}

也可以将grade变量声明为string类型
下方cout输出为


cout << "Grade: " << grade[0]+1 << endl;	//将string的第一个字符+1,则显示的是下一个字母

#include <iostream>
using namespace std;
int main()
{
   
	char firstname[20], lastname[20];//声明firstname和lastname
	char grade;//声明成绩变量grade
	int age;//声明年龄整型变量age
	cout << "What is your first name?";
	cin.getline(firstname, 20);//读取用户输入的一行字符给firstname
	cout << "What is your last name?";
	cin.getline(lastname, 20);//读取用户输入的一行字符给lastname
	cout << "What is your grade?";
	cin >> grade;//读取用户输入的成绩grade
	cin.get();
	cout << "What is your age?";
	cin >> age;//读取用户输入的年龄age
	cin.get();
	cout << "Name: " << lastname << "," << firstname << endl;//打印名字
	cout << "Grade: " << char((int)grade+1) << endl;//打印成绩,将用户输入的grade转为int类+1就是下调整成绩,再转为char类显示出来
	cout << "Age: " << age << endl;//打印年龄
	cin.get();
	return 0;
}

2.修改程序清单4.4,使用C++ string类而不是char数组

//程序清单4.4原代码
#include <iostream>
int main()
{
   
	using namespace std;
	const int ArSize = 20;
	char name[ArSize];
	char dessert[ArSize];

	cout << "Enter your name:\n";
	cin.getline
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值