c++ primer plus 第七章 课后题答案

时间:2021-12-30 22:33:25

c++ primer plus 第七章 课后题答案

#include <iostream>
using namespace std;
double HAR_AVG(double, double);
void TEST(bool); int main()
{
double x, y;
cout << "Please enter two values(encountered zero end):\n";
cin >> x;
TEST(cin.fail());
cin >> y;
TEST(cin.fail());
while (x*y != )
{
cout << "The harmonic mean of the two values is " << HAR_AVG(x, y) << ".\n";
cout << "Please enter two values(encountered zero end):\n";
cin >> x;
TEST(cin.fail());
cin >> y;
TEST(cin.fail());
} system("pause"); } double HAR_AVG(double x, double y)
{
return 2.0*x*y / (x + y);
} void TEST(bool a)
{
if (a == true)
cout << "Not value!\n";
}

c++ primer plus 第七章 课后题答案

#include <iostream>
using namespace std;
const int Max_Num = ;
int In_put(double *, int);
double Pro_data(double *, int);
void Display(const double *, int, double); int main()
{
double grade[Max_Num];
int count;
double avg_grade; count=In_put(grade, Max_Num);
avg_grade=Pro_data(grade, count);
Display(grade, count, avg_grade); system("pause");
} int In_put(double *grade,int a)
{
cout << "Please enter ten golf scores (press any non-numeric button to end): \n";
int count=;
for (int i = ; i < a; i++)
{
cin >> grade[i];
if (cin.fail())
{
cout << "End!\n";
return count;
}
count++;
}
return count;
} double Pro_data(double *grade, int count)
{
double sum=;
for (int i = ; i < count; i++)
{
sum += grade[i];
} return sum / count;
} void Display(const double *grade, int count, double a)
{
cout << "The grades you entered are:";
for (int i = ; i < count; i++)
{
cout << grade[i] << " ";
} cout << "\nThe average score is " << a << ".\n";
}

c++ primer plus 第七章 课后题答案

#include<iostream>
using namespace std;
const int Max_num = ; struct box
{
char maker[];
float height;
float width;
float length;
float volume;
}; bool In_put(box *,int);
void Display(box,int);
void Setting(box *,int); int main()
{
box *abc = new box[Max_num];
int count=; for (int i = ; i < Max_num; i++)
{
if (In_put(abc, i))
break;
count++;
} cout << "You have entered " << count << " boxes.\n";
for (int j = ; j < count; j++)
{
Display(abc[j], j);
} system("pause");
} bool In_put(box *abc, int i)
{
cout << "Please enter the maker of the box, as well as the length, width, and height:\n";
cin >> abc[i].maker;
if (cin.fail())
{
cout << "The maker of the input box has an error.\n";
return cin.fail();
}
cin >> abc[i].length;
if (cin.fail())
{
cout << "The maker of the input length has an error.\n";
return cin.fail();
}
cin >> abc[i].width;
if (cin.fail())
{
cout << "The maker of the input width has an error.\n";
return cin.fail();
}
cin >> abc[i].height;
if (cin.fail())
{
cout << "The maker of the input height has an error.\n";
return cin.fail();
}
Setting(abc,i);
return false;
} void Setting(box *abc, int i)
{
abc[i].volume = abc[i].length*abc[i].width*abc[i].height;
} void Display(box abc,int j)
{
cout << "The " << j+ << "th box has the following information:\n";
cout << "maker:" << abc.maker << endl;
cout << "length:" << abc.length << endl;
cout << "width:" << abc.width << endl;
cout << "height:" << abc.height << endl;
cout << "volume:" << abc.volume << endl;
}

c++ primer plus 第七章 课后题答案

#include <iostream>
long double probability(unsigned, unsigned, unsigned, unsigned);
int main()
{
using namespace std;
double total1, choices1;
double total2, choices2;
cout << "Enter the total number of Domain choices on the game card and\n"
"the number of picks allowed:\n";
cin >> total1 >> choices1;
cout << "Enter the total number of Special choices on the game card and\n"
"the number of picks allowed:\n";
cin >> total2 >> choices2;
while (!(cin.fail()) && choices1 <= total1 && choices2 <= total2)
{
cout << "You have one chance in ";
cout << probability(total1, choices1, total2, choices2);
cout << " of winning.\n";
cout << "Next four numbers (Non-numeric to quit): ";
cin >> total1 >> choices1;
cin >> total2 >> choices2;
}
cout << "bye\n";
system("pause");
return ;
} long double probability(unsigned numbers1, unsigned picks1, unsigned numbers2, unsigned picks2)
{
long double result = 1.0; // here come some local variables
long double n;
unsigned p; for (n = numbers1, p = picks1; p > ; n--, p--)
result = result * n / p;
for (n = numbers2, p = picks2; p > ; n--, p--)
result = result * n / p;
return result;
}

c++ primer plus 第七章 课后题答案

#include <iostream>
using namespace std;
unsigned long factorial(unsigned int); int main()
{
unsigned int pp;
unsigned long qq;
cout << "Please enter a non-negative number:";
if (cin >> pp)
{
qq = factorial(pp);
cout << "The factorial of this value is:" << qq << endl;
}
system("pause");
} unsigned long factorial(unsigned int pp)
{
unsigned long qq;
if (pp > )
qq = pp * factorial(pp - );
else
return ;
return qq;
}

c++ primer plus 第七章 课后题答案

#include <iostream>
using namespace std;
const int Max_num = ;
int Fill_array(double *, int);
void Show_array(const double *, int);
void Reverse_array(double *, int); int main()
{
double abc[Max_num];
int num_rel;
num_rel=Fill_array(abc, Max_num);
Show_array(abc, num_rel);
Reverse_array(abc, num_rel);
Show_array(abc, num_rel);
Reverse_array(abc+, num_rel-);
Show_array(abc, num_rel); system("pause");
} int Fill_array(double *abc, int t)
{
int count_num = ;
cout << "Please enter no more than" << t << "digits (experiencing non-numeric exits):\n";
for (int i = ; i < t; i++)
{
if (!(cin >> abc[i]))
break;
count_num++;
}
cout << "Input completed.\n";
return count_num;
} void Show_array(const double *abc, int t)
{
for (int i = ; i < t; i++)
{
cout << abc[i] << endl;
}
} void Reverse_array(double *abc, int t)
{
cout << "Reverse!" << endl;
int i = , j = t - ;
double qqq;
while (j > i)
{
qqq = abc[i];
abc[i] = abc[j];
abc[j] = qqq;
i++;
j--;
}
}

c++ primer plus 第七章 课后题答案

#include <iostream>
const int Max = ; double * fill_array(double *, double *);
void show_array(const double *, const double *);
void revalue(double, double *, double *); int main()
{
using namespace std;
double properties[Max]; double *end = fill_array(properties, properties+Max);
show_array(properties, end);
if (end > properties)
{
cout << "Enter revaluation factor: ";
double factor;
while (!(cin >> factor))
{
cin.clear();
while (cin.get() != '\n')
continue;
cout << "Bad input; Please enter a number: ";
}
revalue(factor,properties, end);
show_array(properties, end);
}
cout << "Done.\n"; system("pause");
} double * fill_array(double * ar, double * br)
{
using namespace std;
double temp;
double *i;
int j = ;
for (i = ar; i<br; i++,j++)
{
cout << "Enter value #" << (j + ) << ": ";
cin >> temp;
if (!cin)
{
cin.clear();
while (cin.get() != '\n')
continue;
cout << "Bad input; input process terminated.\n";
break;
}
else if (temp < )
break;
*i = temp;
}
return i;
} void show_array(const double *ar, const double *br)
{
using namespace std;
const double *i;
int j = ;
for (i = ar; i < br; i++,j++)
{
cout << "Property #" << (j + ) << ": $";
cout << *i << endl;
}
} void revalue(double r,double *ar,double *br)
{
double *i;
for (i = ar; i < br; i++)
(*i)*= r;
}

c++ primer plus 第七章 课后题答案

#include <iostream>
#include <string>
const int Seasons = ;
const char * Snames[Seasons] = { "Spring", "Summer", "Fall", "Winter" }; int main()
{
double expenses[Seasons];
fill(expenses);
show(expenses);
system("pause");
} void fill(double * pa)
{
for (int i = ; i < Seasons; i++)
{
std::cout << "Enter " << Snames[i] << " expenses: ";
std::cin >> pa[i];
}
} void show(double * da)
{
double total = 0.0;
std::cout << "\nEXPENSES\n";
for (int i = ; i < Seasons; i++)
{
std::cout << Snames[i] << ": $" << da[i] << '\n';
total += da[i];
}
std::cout << "Total: $" << total << '\n';
}
#include <iostream>
#include <string>
const int Seasons = ;
const char * Snames[Seasons] = { "Spring", "Summer", "Fall", "Winter" };
struct expenses
{
double expenses;
};
void fill(expenses *);
void show(expenses *); int main()
{
expenses *cost = new expenses[Seasons];
fill(cost);
show(cost);
system("pause");
} void fill(expenses * pa)
{
for (int i = ; i < Seasons; i++)
{
std::cout << "Enter " << Snames[i] << " expenses: ";
std::cin >> pa[i].expenses;
}
} void show(expenses * da)
{
double total = 0.0;
std::cout << "\nEXPENSES\n";
for (int i = ; i < Seasons; i++)
{
std::cout << Snames[i] << ": $" << da[i].expenses << '\n';
total += da[i].expenses;
}
std::cout << "Total: $" << total << '\n';
}

c++ primer plus 第七章 课后题答案

c++ primer plus 第七章 课后题答案

c++ primer plus 第七章 课后题答案

#include <iostream>
using namespace std;
const int SLEN = ;
struct student {
char fullname[SLEN];
char hobby[SLEN];
int ooplevel;
}; int getinfo(student [], int);
void display1(student);
void display2(const student *);
void display3(const student *, int); int main()
{
cout << "Enter class size:";
int class_size;
while (!(cin >> class_size))
{
cin.clear();
cin.ignore();
cout << "Please enter class size:";
}; student * ptr_stu = new student[class_size];
int entered = getinfo(ptr_stu, class_size);
for (int i = ; i < entered; i++)
{
display1(ptr_stu[i]);
display2(&ptr_stu[i]);
}
display3(ptr_stu, entered);
delete[] ptr_stu;
cout << "Done\n";
system("pause");
} int getinfo(student pa[], int n)
{
int count = ;
for (int i = ; i < n; i++)
{
cin.ignore();
cout << "Please enter the fullname:";
cin.getline(pa[i].fullname, SLEN);
cout << "Please enter the hobby:";
cin.getline(pa[i].hobby, SLEN);
cout << "Please enter the ooplevel:";
cin >> pa[i].ooplevel;
count++;
}
cout << "\nEnter end!";
return count;
} void display1(student pa)
{
cout << "\ndisplay1:\nFullName:" << pa.fullname << "\nhobby:" << pa.hobby
<< "\nooplevel:" << pa.ooplevel << endl;
}
void display2(const student * pa)
{
cout << "\ndisplay2:\nFullName:" << pa->fullname << "\nhobby:" << pa->hobby
<< "\nooplevel:" << pa->ooplevel << endl;
}
void display3(const student * pa, int n)
{
cout << "\ndispaly3:\n" << endl;
for (int i = ; i < n; i++)
cout << i+ << "::FullName:" << pa[i].fullname << "\nhobby:" << pa[i].hobby
<< "\nooplevel:" << pa[i].ooplevel << endl;
}

c++ primer plus 第七章 课后题答案

#include <iostream>
using namespace std; double add(double, double);
double sub(double, double);
double calculate(double, double, double (double, double)); int main()
{
double a, b, c, d;
cout << "Please enter two values:\n";
while ((cin >> a) && (cin >> b))
{
c=calculate(a, b, add);
d=calculate(a, b, sub);
cout << "The sum and subtraction of the values are:" << c << "," << d << endl;
cout << "Please continue to enter:\n";
}
system("pause");
} double add(double a, double b)
{
double c;
c = a + b;
return c;
} double sub(double a, double b)
{
double d;
d = a - b;
return d;
} double calculate(double a, double b, double cal(double, double))
{
double e;
e = cal(a, b);
return e;
}