《C++ primer plus》第四单元的课后编程
详细答案可参考C++ primer plus课后编程答案参考
1.cpp
#include<iostream>
using namespace std;
int main()
{
char firstname[20],lastname[20];
char Gread;
cout<<"What is your first name?";
cin.getline(firstname,20);//getline允许拥有空格字符,遇到回车键停止
cout<<"What is your last name?";
cin.getline(lastname,20);
cout<<"What letters do you deserve?";
cin>>Gread;
cout<<"Name:"<<lastname<<","<<firstname<<endl;
cout<<"Gread:"<<char(Gread+1);//Gread为字符型加一之后,转为int型,需要强制转化为char型
return 0 ;
}
2.cpp
#include<iostream>
#include<string>
using namespace std;
int main()
{
string name,dessert;
cout<<"Enter your name:"<<endl;
getline(cin,name);
cout<<"Enter your feacorite dessert:"<<endl;
getline(cin,dessert);
cout<<"I have some delicious "<<dessert
<<" for you,"<<name<<".\n";
return 0;
}
3.cpp
#include<iostream>
#include<string>
using namespace std;
int main()
{
char firstname[20];
string lastname;
cout<<"Enter your first name:";
cin.getline(firstname,20);
cout<<"Enter your last name:";
getline(cin,lastname);
cout<<firstname<<","<<lastname;
return 0;
}
5.cpp
#include<iostream>
#include<cstring>
using namespace std;
struct Candy
{
char name[20];
double weight;
int kaluli;
};
int main()
{
Candy snack={"Mocha Munch",2.3,350};
/*Candy snack;
snack ={"Mocha Munch",2.3,350};
这种方法的赋值存在问题,但具体为啥不清楚,按照上面的步骤进行初始化*/
cout<<snack.name<<endl
<<snack.weight<<endl
<<snack.kaluli<<endl;
return 0 ;
}
6.cpp
#include<iostream>
#include<cstring>
using namespace std;
struct Candy
{
char name[20];
double weight;
int kaluli;
};
int main()
{
Candy snack[3]=
{
{"Mocha Munch",2.3,350},
{"makabaka",5.6,456},
{"yigubigu",6.2,789}
};
cout<<snack[0].name<<endl
<<snack[1].name<<endl
<<snack[2].name<<endl;
return 0 ;
}
7.cpp
#include<iostream>
#include<string.h>
using namespace std;
struct pizze
{
char name[20];
double ridicular;
double weight;
};
int main()
{
pizze pisa1;
cout<<"Enter the pizza's name:"<<endl;
cin.getline(pisa1.name,20);
cout<<"Enter the ridicular of the pizza"<<endl;
cin>>pisa1.ridicular;
cout<<"Enter the pizza's weight"<<endl;
cin>>pisa1.weight;
cout<<pisa1.name<<endl
<<pisa1.ridicular<<endl
<<pisa1.weight<<endl;
return 0;
}
8.cpp
#include <iostream>
#include <string.h>
using namespace std;
struct pizze
{
char name[20];
double ridicular;
double weight;
};
int main()
{
pizze *pisa1 = new pizze;//使用new 来声明新的变量时需要用到指针
cout << "Enter the pizza's name:" << endl;
cin.getline(pisa1->name, 20);
cout << "Enter the ridicular of the pizza" << endl;
cin >> pisa1->ridicular;
cout << "Enter the pizza's weight" << endl;
cin >> pisa1->weight;
cout << pisa1->name << endl
<< pisa1->ridicular << endl
<< pisa1->weight << endl;
return 0;
}
9.cpp
#include<iostream>
#include<string>
using namespace std;
struct Candy
{
string name;
double weight;
int kaluli;
};
int main()
{
Candy *snack = new Candy[3];//用new声明三个数组
snack[0].name = "makabaka"; //new声明三个数组之后,需要单个的进行初始化
snack[1].name = "yigubigu";
snack[2].name = "huluhulu";
cout<<snack[0].name<<endl
<<snack[1].name<<endl
<<snack[2].name<<endl;
return 0 ;
}
10.cpp
#include<iostream>
using namespace std;
int main()
{
cout.setf(ios_base::fixed,ios_base::floatfield);
//加上这条代码后输出的数字将不会省略掉后面的零,而是以float的形式出现
double grade[4];
cout<<"Enter your four times grades:"<<endl;
cin>>grade[0]>>grade[1]>>grade[2]>>grade[3];
cout<<grade[0]<<endl
<<grade[1]<<endl
<<grade[2]<<endl
<<grade[3]<<endl;
return 0;
}