C++ Primer Plus(第6版)Chapter 4 编程题答案
第1题:
// task 1
#include <iostream>
#include <string>
#include <cstring>
#include <array>
int main()
{
using namespace std;
cout << "What is your first name? ";
char fname[20];
cin.getline(fname, 20); //getline(), 因为Betty Sue之间有空格
cout << "What is your last name? ";
char lname[20];
cin.getline(lname, 20); //Yewe
cout << "What letter grade do you deserve? ";
char score;
cin >> score; //B
cout << "What is your age? ";
int age;
cin >> age; //22
cout << "Name: " << lname << ", " << fname << endl;
cout << "Grade: " << char(score + 1) << endl;
cin.get();
cin.get();
return 0;
}
第2题:
// task 2
int main()
{
using namespace std;
string name, dessert;
cout << "Enter your name:\n";
getline(cin, name);
cout << "Enter your favorite dessert:\n";
getline(cin, dessert);
cout << "T have some delicious " << dessert;
cout << " for you, " << name << ".\n";
cin.get();
cin.get();
return 0;
}
第3题:
// task 3
int main()
{
using namespace std;
cout << "Enter your first name: ";
char fname[20];
cin.getline(fname, 20);
cout << "Enter your last name: ";
char lname[20];
cin.getline(lname, 20);
char name[40];
strcpy_s(name, lname); //加上 _s for safe
strcat_s(name, ", ");
strcat_s(name, fname);
cout << "Here's the information in a single string: " << name;
cin.get();
cin.get();
return 0;
}
第4题:
// task 4
int main()
{
using namespace std;
string fname, lname, name;
cout << "Enter your first name: ";
getline(cin, fname);
cout << "Enter your last name: ";
getline(cin, lname);
name = lname + ", " + fname;
cout << "Here's the information in a single string: " << name;
cin.get();
cin.get();
return 0;
}
第5题:
// task 5
int main()
{
using namespace std;
struct CandyBar
{
char band[20];
float weight;
int colory;
};
CandyBar snack = { "Mocha Munch", 2.3, 350 };
cout << "The band is " << snack.band << endl;
cout << "The weight is " << snack.weight << endl;
cout << "The kaluli is " << snack.colory << endl;
cin.get();
cin.get();
return 0;
}
第6题:
// task 6
int main()
{
using namespace std;
struct CandyBar
{
char band[20];
float weight;
int colr;
};
// 创建一个结构数组并初始化
CandyBar snacks[3] = { { "Mocha Munch", 2.3, 350 }, { "star bucks", 1.8, 200 }, { "hagendasi", 4.9, 638 } };
cout << "The 1st band is " << snacks->band << endl;
cout << "The 1st weight is " << snacks->weight << endl;
cout << "The 1st kaluli is " << snacks->colr << endl;
cout << "The 2st band is " << (snacks + 1)->band << endl;
cout << "The 2st weight is " << (snacks + 1)->weight << endl;
cout << "The 2st kaluli is " << (snacks + 1)->colr << endl;
cout << "The 3st band is " << (snacks + 2)->band << endl;
cout << "The 3st weight is " << (snacks + 2)->weight << endl;
cout << "The 3st kaluli is " << (snacks + 2)->colr << endl;
cin.get();
cin.get();
return 0;
}
第7题:
// task 7
int main()
{
using namespace std;
struct pizza
{
string name;
float d;
float weight;
};
pizza bishengke;
cout << "Enter the name: ";
getline(cin, bishengke.name);
cout << "Enter the zhijing: ";
cin >> bishengke.d;
cout << "Enter the weight: ";
cin >> bishengke.weight;
cout << "The band is: " << bishengke.name << endl;
cout << "The zhijing is: " << bishengke.d << endl;
cout << "The weight is: " << bishengke.weight << endl;
cin.get();
cin.get();
return 0;
}
第8题:
// task 8
int main()
{
using namespace std;
struct pizza
{
string name;
float d;
float weight;
};
pizza* pt = new pizza;
cout << "Enter the zhijing: ";
cin >> pt->d;
cout << "Enter the name: ";
cin.get(); //用来吃掉回车,不能少
getline(cin, pt->name);
cout << "Enter the weight: ";
cin >> pt->weight;
cout << "The band is: " << pt->name << endl;
cout << "The zhijing is: " << pt->d << endl;
cout << "The weight is: " << pt->weight << endl;
cin.get();
cin.get();
return 0;
}
第9题:
// task 9
int main()
{
using namespace std;
struct CandyBar
{
char band[20];
float weight;
int colr;
};
// 动态创建一个结构数组
CandyBar* snacks = new CandyBar[3];
snacks[0] = { "Mocha Munch", 2.3, 350 };
snacks[1] = { "Star Bucks", 1.8, 200 };
snacks[2] = { "HaGenDaSi", 4.9, 645 };
cout << "The 1st band is " << snacks->band << endl;
cout << "The 1st weight is " << snacks->weight << endl;
cout << "The 1st kaluli is " << snacks->colr << endl;
cout << "The 2st band is " << (snacks + 1)->band << endl;
cout << "The 2st weight is " << (snacks + 1)->weight << endl;
cout << "The 2st kaluli is " << (snacks + 1)->colr << endl;
cout << "The 3st band is " << (snacks + 2)->band << endl;
cout << "The 3st weight is " << (snacks + 2)->weight << endl;
cout << "The 3st kaluli is " << (snacks + 2)->colr << endl;
delete[] snacks;
cin.get();
cin.get();
return 0;
}
第10题:
// task 10
int main()
{
using namespace std;
cout << "Enter the three score: ";
array<double, 3> scores;
cin >> scores[0];
cin >> scores[1];
cin >> scores[2];
double av = (scores[0] + scores[1] + scores[2]) / 3;
cout << "The average score of 3 is: " << av << endl;
cin.get();
cin.get();
return 0;
}