C++程序设计第三版(谭浩强)第四章课后习题答案

自己写的做练习,如果有问题多谢指点

4.2

#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include<cmath>
using namespace std;
void delta1(float, float);
void delta2(float, float);
void delta3(float, float);
float delta;
int main()
{
	float a, b, c;
	cout << "Please input three numbers:" << endl;
	scanf_s("%f %f %f", &a, &b, &c);
	delta = b * b - 4 * a*c;
	if (delta > 0)
		delta1(a, b);
	else if (delta == 0)
		delta2(a, b);
	else if (delta < 0)
		delta3(a, b);
	return 0;
}
void delta1(float a, float b)
{
	float x1, x2;
	x1 = (-b + sqrt(delta)) / (2 * a);
	x2 = (-b - sqrt(delta)) / (2 * a);
	cout << "x1=" << x1 << " x2=" << x2;
}
void delta2(float a, float b)
{
	float x;
	x = (-b) / (2 * a);
	cout << "x1=x2=" << x;
}
void delta3(float a, float b)
{
	float xb, sb;
	sb = (-b) / (2 * a);
	xb = (sqrt(-delta)) / (2 * a);
	cout << "x1=" << sb << "+" << xb << "i" << endl;
	cout << "x2=" << sb << "-" << xb << "i" << endl;
}

4.3

#include "stdafx.h"
#include <iostream>
#include<cmath>
using namespace std;

int main()
{
	void prime(int);
	int n;
	cout << "Please input a number:" << endl;
	cin >> n;
	prime(n);
	return 0;
}
void prime(int n)
{
	for (int i = 2; i <= sqrt(n); i++)
		if (n%i == 0)
		{
			cout << "This number isn't a prime number.";
			break;
		}
	cout << "This number is a prime number.";
}

4.4

#include "stdafx.h"
#include <iostream>
#include "stdio.h"
#include<cmath>
using namespace std;

int main()
{
	int fac(int);
	int a, b, c;
	cout << "Please input three numbers:" << endl;
	scanf_s("%d %d %d", &a, &b, &c);
	int x;
	x = fac(a) + fac(b) + fac(c);
	cout << "a!+b!+c!=" << x << endl;
	return 0;
}
int fac(int n)
{
	int x;
	if (n == 0 || n == 1)
		x = 1;
	else x = fac(n - 1)*n;
	return x;
}

4.5

#include "stdafx.h"
#include <iostream>
#include "stdio.h"
#include<cmath>
using namespace std;

int main()
{
	float ex(int);
	float sinh(int);
	int n;
	cout << "Please input x:" << endl;
	cin >> n;
	float x = sinh(n);
	cout << x;
	return 0;
}
float ex(int n)
{
	return (exp(n));
}
float sinh(int n)
{
	float sinh;
	sinh = (ex(n) - ex(-n)) / 2;
	return sinh;
}

4.7

#include "stdafx.h"
#include <iostream>
#include "stdio.h"
#include<cmath>
using namespace std;

int main()
{
	void gotbaha(int);
	cout << "Please input a number:" << endl;
	int n;
	cin >> n;
	gotbaha(n);
	return 0;
}
void gotbaha(int n)
{
	bool prime(int);
	if (n % 2 != 0)
		cout << n << " is not a even number.";
	else
	{
		int a = 3, b = n - 3;
		for(int i=2;i<n/2;i+2)
		{ 
			if (prime(a) && prime(b))
			{
				cout << n << "=" << a << "+" << b;
				break;
			}
			else
			{
				a = a + i;
				b = b - i;
			}
		}
	}
}
bool prime(int n)
{
	for (int i = 2; i <= sqrt(n); i++)
		if (n%i == 0)
			return false;
	return true;
}

4.8

#include "stdafx.h"
#include <iostream>
#include "stdio.h"
#include<cmath>
using namespace std;

int main()
{
	int lrd(int, int);
	int n, x;
	cout << "Please input the n and x:" << endl;
	scanf_s("%d %d", &n, &x);
	int y=lrd(n, x);
	cout << "The value is" << y;
	return 0;
}
int lrd(int n,int x)
{
	int f;
	if (n == 0)
		f = 1;
	else if (n == 1)
		f = x;
	else
		f = (2 * n - 1)*x - lrd(n - 1, x) - (n - 1)*lrd(n - 2, x) / n;
	return f;
}

4.9

#include "stdafx.h"
#include <iostream>
#include "stdio.h"
#include<cmath>
using namespace std;

int main()
{
	void hanoi(int, char, char, char);
	char A, B, C;
	cout << "Please input the number" << endl;
	int n;
	scanf_s("%d %c %c %c", &n, &A, 1, &B, 1, &C, 1);
	hanoi(n, A, B, C);
	return 0;
}
void hanoi(int n, char A, char B, char C)
{
	void move(char, char);
	if (n == 1)
		move(A, C);
	else
	{
		hanoi(n - 1, A, C, B);
		move(A, C);
		hanoi(n - 1, B, A, C);
	}
}
void move(char x, char y)
{
	cout << x << " to " << y<<endl;
}

4.10

#include "stdafx.h"
#include <iostream>
#include "stdio.h"
#include<cmath>
using namespace std;

int main()
{
	void exchange(int);
	int n;
	cout << "Please input a number:";
	cin >> n;
	exchange(n);
	return 0;
}
void exchange(int n)
{
	if (n / 10 != 0)
		exchange((int)(n/10));
	cout << (char)(n % 10 + '0');
}

4.11

#include "stdafx.h"
#include <iostream>
#include "stdio.h"
#include<cmath>
using namespace std;

int main()
{
	int sum(int);
	int n;
	cout << "Please input a number:";
	cin >> n;
	int y = sum(n);
	cout << "The value is " << y;

}
int sum(int n)
{
	int f;
	if (n == 1)
		f = 1;
	else
		f = sum(n - 1) + n * n;
	return f;
}

4.12

#include "stdafx.h"
#include <iostream>
#include "stdio.h"
#include<cmath>
#define s(a,b,c) 0.5*((a)+(b)+(c))
#define area(s,a,b,c) sqrt(s*(s-(a))*(s-(b))*(s-(c)))
using namespace std;

int main()
{
	int a, b, c;
	cout << "Please input the length of the three sides of a triangle:";
	scanf_s("%d %d %d", &a, &b, &c);
	cout << "The area of this triangle is " << area(s(a,b,c),a,b,c);
	return 0;
}

 

已标记关键词 清除标记
相关推荐
谭浩强 - C++程序设计 内容目录: 第1篇 基本知识 第1 C++的初步知识 *1.1 从 C 到 C++ *1.2 最简单的 C++ 程序 1.3 C++ 程序的构成和书写形式 1.4 C++ 程序的编写和实现 1.5 关于 C++ 上机实践 第2 数据类型与表达式 2.1 C++ 的数据类型 2.2 常量 2.3 变量 2.4 C++ 的运算符 2.5 算术运算符与算术表达式 2.6 赋值运算符与赋值表达式 2.7 逗号运算符与逗号表达式 第2篇 面向过程的程序设计 第3 程序设计初步 3.1 面向过程的程序设计和算法 3.2 C ++ 程序和语句 3.3 赋值语句 3.4 C++ 的输入与输出 3.5 编写顺序结构的程序 3.6 关系运算和逻辑运算 3.7 选择结构和if语句 3.8 条件运算符和条件表达式 3.9 多分支选择结构和 switch 语句 3.10 编写选择结构的程序 3.11 循环结构和循环语句 3.12 循环的嵌套 3.13 break 语句和 continue 语句 3.14 编写循环结构的程序 第4 函数与预处理 4.1 概述 4.2 定义函数的一般形式 4.3 函数参数和函数的值 4.4 函数的调用 *4.5 内置函数 *4.6 函数的重载 *4.7 函数模板 *4.8 有默认参数的函数 4.9 函数的嵌套调用 4.10 函数的递归调用 4.11 局部变量和全局变量 4.12 变量的存储类别 4.13 变量属性小结 4.14 关于变量的声明和定义 4.15 内部函数和外部函数 4.16 预处理命令 第5 数组 5.1 数组的概念 5.2 一维数组的定义和引用 5.3 二维数组的定义和引用 5.4 用数组名作函数参数 5.5 字符数组 *5.6 C++ 处理字符串的方法 —— 字符串类与字符串变 第6 指针 6.1 指针的概念 6.2 变量与指针 6.3 数组与指针 6.4 字符串与指针 6.5 函数与指针 6.6 返回指针值的函数 6.7 指针数组和指向指针的指针 6.8 有关指针的数据类型和指针运算的小结 *6.9 引用 第7 自定义数据类型 7.1 结构体类型 7.2 共用体 7.3 枚举类型 7.4 用 typedef 声明类型 第3篇 基于对象的程序设计 第8 类和对象 8.1 面向对象程序设计方法概述 8.2 类的声明和对象的定义 8.3 类的成员函数 8.4 对象成员的引用 8.5 类的封装性和信息隐蔽 8.6 类和对象的简单应用举例 第9 关于类和对象的进一步讨论 9.1 构造函数 9.2 析构函数 9.3 调用构造函数和析构函数的顺序 9.4 对象数组 9.5 对象指针 9.6 共用数据的保护 9.7 对象的动态建立和释放 9.8 对象的赋值和复制 9.9 静态成员 9.10 友元 9.11 类模板 第10 运算符重载 10.1 什么是运算符重载 10.2 运算符重载的方法 10.3 重载运算符的规则 10.4 运算符重载函数作为类成员函数和友元函数 10.5 重载双目运算符 10.6 重载单目运算符 10.7 重载流插入运算符和流提取运算符 10.8 不同类型数据间的转换 第4篇 面向对象的程序设计 第11 继承与派生 11.1 继承与派生的概念 11.2 派生类的声明方式 11.3 派生类的构成 11.4 派生类成员的访问属性 11.5 派生类的构造函数和析构函数 11.6 多重继承 11.7 基类与派生类的转换 11.8 继承与组合 11.9 继承在软件开发中的重要意义 第12 多态性与虚函数 12.1 多态性的概念 12.2 一个典型的例子 12.3 虚函数 12.4 纯虚函数与抽象类 第13 输入输出流 13.1 C++ 的输入和输出 13.2 标准输出流 13.3 标准输入流 13.4 文件操作与文件流 13.5 字符串流
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页