当前位置: 移动技术网 > IT编程>开发语言>C/C++ > C++ Primer Plus第7章题目题解

C++ Primer Plus第7章题目题解

2018年02月27日  | 移动技术网IT编程  | 我要评论

和美女睡觉游戏,美眉泰正点,韩国比利时预测

C++ Primer Plus第7章题目题解

#include   
using namespace std;
double fun(double x, double y);
int main()
{
	cout << "请输入两个数: ";
	double a, b;
	while (cin >> a >> b && a && b)
	{
		cout << fun(a, b) << endl;
		cout << "请输入两个数: ";
	}
	cout << "BYE!" << endl;
	return 0;
}

double fun(double x, double y)
{
	return 2.0 * x * y / (x + y);
}


7-2

#include   
using namespace std;
int input(double *a);
void output(double *a, int n);
double fun(double *a, int n);
int main()
{
	double a[10];
	int num = input(a);
	output(a, num);
	return 0;
}

int input(double *a)
{
	int i;
	for (i = 0; i < 10; ++i)
	{
		cin >> a[i];
		if (a[i] <= 0)
			break;
	}
	return i;
}

void output(double *a, int n)
{
	for (int i = 0; i < n; ++i)
		cout << a[i] << " ";
	cout << fun(a, n) << endl;
}

double fun(double *a, int n)
{
	double sum = 0;
	for (int i = 0; i < n; ++i)
		sum += a[i];
	sum /= n;
	return sum;
}

7-3

#include   
using namespace std;
struct box
{
	char maker[40];
	float height;
	float width;
	float length;
	float volume;
};
void fun_a(box a);
void fun_b(box *a);
int main()
{
	box a = 
	{
		"Yuuji",
		10,
		20,
		1,
		22
	};
	fun_a(a);
	fun_b(&a);
	return 0;
}

void fun_a(box a)
{
	cout << a.maker << endl << a.height << endl << a.width << endl << a.length << endl << a.volume << endl;
}

void fun_b(box *a)
{
	a->volume = a->height * a->width * a->length;
	cout << a->volume << endl;
}

7-4

#include   
using namespace std;
int main()
{
	double ans = 1;
	for (int i = 0; i < 5; i++)
		ans *= (double)(5 - i) / (double)(47 - i);
	ans *= double(1) / 27;
	cout << ans << endl;
	return 0;
}

7-5

#include   
using namespace std;  
long long fun(int n);  
int main()  
{  
    int n;  
    while(cin >> n && n >= 0){  
        long long ans = 0;  
        if(!n)  
            cout << "1" << endl;  
        else{  
            ans = fun(n);  
            cout << ans << endl;  
        }  
    }  
    return 0;  
}  
  
long long fun(int n)  
{  
    long long ans = 1;  
    for( ; n ; --n)  
        ans *= n;  
    return ans;  
}  

7-6

#include   
using namespace std;  
int File_array(double *a , int len);  
void Show_array(double *a , int len);  
void Reverse_array(double *a , int len);  
int main()  
{  
    double a[10];  
    int num = File_array(a , 10);  
    Show_array(a , num);  
    Reverse_array(a , num);  
    Show_array(a , num);  
    Reverse_array(a + 1 , num - 2);  
    Show_array(a , num);  
    return 0;  
}  
  
int File_array(double *a , int len)  
{  
    int i;  
    for(i = 0 ; i < len ; ++ i)  
        cin >> a[i];  
    return i;  
}  
  
void Show_array(double *a , int len)  
{  
    for(int i = 0 ; i < len ; ++ i)  
        cout << a[i] << " ";  
    cout << endl;  
}  
  
void Reverse_array(double *a , int len)  
{  
    double temp;  
    for(int i = 0 ; i < len / 2 ; ++ i)
    {  
        temp = a[i];  
        a[i] = a[len-1-i];  
        a[len-1-i] = temp;  
    }  
}  

7-7

#include   
using namespace std;
double *fill_array(double *a);
void show_array(double *a, double *b);
void revalue(double r, double *a, double *b);
int main()
{
	double a[5];
	double *e = fill_array(a);
	show_array(a, e);
	revalue(0.5, a, e);
	show_array(a, e);
	return 0;
}

double *fill_array(double *a)
{
	int i = 0;
	while (cin >> a[i++])
	if (i == 5)
		break;
	return &a[i];
}

void show_array(double *a, double *b)
{
	while (a != b)
	{
		cout << *a << " ";
		++a;
	}
	cout << endl;
}

void revalue(double r, double *a, double *b)
{
	while (a != b)
	{
		(*a) *= r;
		++a;
	}
}


7-8

a

#include   
using namespace std;
void fill_array(double *a, int len);
void show_array(double *a, int len, const char **p);   //char *p是字符串,字符串数组就是char **p
int main()
{
    const char *p[4] = { "Spring", "Summer", "Fall", "Winter" };
	double a[4];
	fill_array(a, 4);
	show_array(a, 4, p);
	return 0;
}
void fill_array(double *a, int len)
{
	for (int i = 0; i < len; ++i)
		cin >> a[i];
}

void show_array(double *a, int len, const char **p)
{
	for (int i = 0; i < len; ++i)
		cout << *(p + i) << "\t";
	cout << endl;
	for (int i = 0; i < len; ++i)
		cout << a[i] << "\t";
	cout << endl;
}

b

#include   
using namespace std;  
struct money{  
    double a[4];  
};  
void fill_array(money *m , int len);  
void show_array(money *m , int len , char **p);  
int main()  
{  
    money t;  
    char *p[4] = {"Spring" , "Summer" ,  "Fall"  , "Winter"};  
    fill_array(&t , 4);  
    show_array(&t , 4 , p);  
    return 0;  
}  
  
void fill_array(money *m , int len)  
{  
    for(int i = 0 ; i < len ;  ++ i)  
        cin >> m->a[i];  
}  
  
void show_array(money *m , int len , char **p)  
{  
    for(int i = 0 ; i < len ; ++ i)  
        cout << *(p + i) << "\t";  
    cout << endl;  
    for(int i = 0 ; i < len ; ++ i)  
        cout << m->a[i] << "\t";  
    cout << endl;  
}  

7-9

太麻烦了,有空再写


7-10

    #include   
      
    double calculate(double a, double b, double (*pf)(double a, double b));  
    double add(double a, double b);  
    double max(double a, double b);  
    double min(double a, double b);  
      
    int main()  
    {  
        double a, b;  
        double (*pf[3])(double a, double b);  
        pf[0] = add;  
        pf[1] = max;  
        pf[2] = min;  
        while(std::cin >> a >> b)  
            for(int i = 0 ; i < 3 ; ++i)  
                std::cout << (*pf[i])(a, b) << std::endl;  
        return 0;  
    }  
      
    double calculate(double a, double b, double (*pf)(double a, double b))  
    {  
        return (*pf)(a, b);  
    }  
      
    double add(double a, double b)  
    {  
        return a + b;  
    }  
      
    double max(double a, double b)  
    {  
        return a > b ? a : b;  
    }  
      
    double min(double a, double b)  
    {  
        return a < b? a : b;  
    }  

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网