C Primer Plus (第六版) 第十六章_编程练习答案

这个博客包含了C Primer Plus第六版的第十六章编程练习的解答,包括no1到no7共7个C语言源文件。
摘要由CSDN通过智能技术生成

no1.h

// 开发一个包含你需要的预处理器定义的头文件

# ifndef NO1_H
# define NO1_H
    //头文件内容
# endif

no2.c

// 两数的调和平均数这样计算:先得到两数的倒数,然后计算两个倒数的平均值,
// 最后取计算结果的倒数.使用 #define 指令定义一个宏 "函数",执行该运算,
// 编写一个简单的程序测试该宏

# include <stdio.h>

# define SUM(X , Y) (1.0 / (((1.0 / (X)) + (1.0 / (Y))) / 2.0))

int main(void)
{
	float x = 1.0 ;
	float y = 2.0 ;

	// 1 / ((1 + (1 / 2)) / 2)
	// 1 / (1.5 / 2.0)
	// 1 / 0.75
	// 1.3333333333333333333333
	printf("1 / 2 = %lf\n" , 1.0 / 2.0);
	printf("1 + (1 / 2) = %lf\n" , 1.0 + (1.0 / 2.0));
	printf("(1 + (1 / 2)) / 2 = %lf \n" , (1.0 + (1.0 / 2.0)) / 2.0);
	printf("1 / ((1 + (1 / 2)) / 2) = %lf\n" , 1.0 / ((1.0 + (1.0 / 2.0)) / 2.0));

	puts("\nSUM(x , y) :");
	printf("%lf\n" , SUM(x , y));

	return 0 ;
}

no3.c

// 极坐标用向量的模(即向量的长度)和向量相对x轴逆时针旋转的角度来描述该向量,直角坐标
// 用向量的x轴和y轴的坐标来描述该向量.编写一个程序,读取向量的模和角度(单位:度)然后
// 显示x轴和y轴坐标.相关方程如下:
// x = r * cos A    y = r * sin A
// 需要一个函数来完成转换,该函数接受一个包含极坐标的结构,并返回一个包含直角坐标的结构
// (或返回指向该结构的指针).

# include <stdio.h>
# include <math.h>

typedef struct 
{
	float len ;		//长度
	float angle ;		//角度
}polar_coordinates;

typedef struct 
{
	float x ;
	float y ;
}cartesian_coordinates ;

cartesian_coordinates coordinates_switch(polar_coordinates pc);

int main(void)
{

	polar_coordinates pc  ;
	cartesian_coordinates cc ;

	puts("请输输入极坐标的长度:(q 退出)");
	while (scanf(" %f" , &pc.len) && pc.len > 0)
	{
		while (getchar() != '\n') ;
		
		puts("请输入极坐标的角度:(q 返回上一级)");
		while (scanf(" %f" , &pc.angle) && pc.angle > 0)
		{
			while (getchar() 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值