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";
}
#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";
}
#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;
}
#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;
}
#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;
}
#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--;
}
}
#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;
}
#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';
}
#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;
}
#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;
}
c++ primer plus 第七章 课后题答案的更多相关文章
- c++ primer plus 第六章 课后题答案
#include <iostream> #include <cctype> using namespace std; int main() { char in_put; do ...
- c++ primer plus 第五章 课后题答案
#include <iostream> using namespace std; int main() { ; cout << "Please enter two n ...
- c++ primer plus 第四章 课后题答案
#include<iostream> #include<string> using namespace std; int main() { string first_name; ...
- c++ primer plus 第三章 课后题答案
#include<iostream> using namespace std; int main() { ; int shen_gao; cout <<"Please ...
- c++ primer plus 第二章 课后题答案
#include<iostream> using namespace std; int main() { cout << "My name is Jiantong C ...
- python核心编程第5章课后题答案
5-8Geometry import math def sqcube(): s = float(raw_input('enter length of one side: ')) print 'the ...
- python核心编程第4章课后题答案(第二版75页)
4-1Python objects All Python objects have three attributes:type,ID,and value. All are readonly with ...
- python核心编程第3章课后题答案(第二版55页)
3-4Statements Ues ; 3-5Statements Use\(unless part of a comma-separated sequence in which case \ is ...
- python核心编程第2章课后题答案(第二版36页)
2-5 Loops and Numbers a) i = 0 while i <11: print i i += 1 b) for i in range(0,11): pri ...
随机推荐
- #C++初学记录(ACM试题1)
A - Diverse Strings A string is called diverse if it contains consecutive (adjacent) letters of the ...
- JMeter4.0二次开发之导入eclipse
1.先建立工程,命名为JMeter4.0. JDK版本为10.0.1 2.在官网下载src文件,通过文件系统导入到JMeter4.0工程中 3.在ant中选择download_jars,ant会自动下 ...
- 最新版Intellij IDEA插件JRebel 7.0.7官方免费激活
本文转自:http://blog.csdn.net/u012283609/article/details/70213307 开场语 有时候真实比小说更加荒诞,因为虚构是在一定逻辑下进行的,而现实往往毫 ...
- AngularJs表单自动验证
angular-auto-validate 地址:https://github.com/jonsamwell/angular-auto-validate 引用: <script src=&quo ...
- Linux中Postfix邮件发送配置(三)
部署DNS服务器 postfix根据域名和地址做一个MX记录,A记录,PTR记录(一般在互联网上邮件服务器都要反解,没有PTR记录会认为是垃圾邮件) $ service iptables stop $ ...
- MySQL数据库----多表查询
一.介绍 首先先准备表 员工表和部门表 #建表 create table department( id int, name varchar(20) ); create table employee1( ...
- C++设计模式 之 “对象创建”模式:Factory Method、Abstract Factory、Prototype、Builder
part 0 “对象创建”模式 通过“对象创建” 模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定.它是接口抽象之后的第一步工作. 典型模式 Fact ...
- 20145329 《网络对抗技术》Web安全基础实践
实践的目标 理解常用网络攻击技术的基本原理.Webgoat实践下相关实验:SQL注入攻击.XSS攻击.CSRF攻击. 实验后回答问题 (1)SQL注入攻击原理,如何防御 攻击原理 SQL注入即是指we ...
- 20145319 《网络渗透》DNS欺骗
20145319 <网络渗透>DNS欺骗 实验内容 dns欺骗实质上就是一种通过修改dns文件来改变目标想访问的域名和对应ip的攻击,使得目标在访问自己常用域名时不知不觉落入我们的圈套(可 ...
- Email移动的原理
1.从数据库中得到被移动邮件的uid: 2.选择移动邮件所属folder,即SelectFolder; 3.调用copymessage(path,vmime::net::messageset::byU ...