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()