复数 一级ADT实现
COMPLEX.h
/*
typedef struct
{
float RE; //实部
float IM; //虚部
}Complex;
*/
typedef struct complex * Complex; Complex COMPLEXinit(float, float);
float Re(Complex);
float Im(Complex);
Complex COMPLEXmult(Complex, Complex);
COMPLEX.c
#include "COMPLEX.h" struct complex
{
float RE; //实部
float IM; //虚部
}; Complex COMPLEXinit(float RE, float IM)
{
/*
Complex t;
t.RE=RE;
t.IM=IM;
return t;
*/ Complex t=malloc(sizeof *t);
t->RE=RE;
t->IM=IM;
return t;
}
float Re(Complex z)
{
return z->RE;
}
float Im(Complex z)
{
return z->IM;
}
Complex COMPLEXmult(Complex a, Complex b)
{
/*
Complex t;
t.RE=a.RE*b.RE-a.IM*b.IM;
t.IM=a.RE*b.IM+a.IM*b.RE; //a实部乘b实部-a虚部乘b虚部
//a实部乘b虚部+a虚部乘b实部
return t;*/ return COMPLEXinit(Re(a)*Re(b)-Im(a)*Im(b),
Re(a)*Im(b)+Im(a)*Re(b));
}
main.c
#include <stdio.h>
#include <math.h>
#include "COMPLEX.h" #define PI 3.141592625 int main(void)
{
int N;
printf("输入一个参数:");
scanf("%d", &N);
getchar(); Complex t, x;
printf("%dth complex roots of unity\n", N);
for(int i=; i<N; i++)
{
float r=2.0*PI*i/N;
//1=e^(2n*pi*i) ? t=COMPLEXinit(cos(r), sin(r)); printf("%2d %6.3f %6.3f ", i, Re(t), Im(t));
x=t;
for(int j=; j<N-; j++)
x=COMPLEXmult(t, x); printf("%6.3f %6.3f\n", Re(x), Im(x));
} return ;
}
复数 一级ADT实现的更多相关文章
- 本人在安装ADT Bundle for windows的各种问题总结
本人在安装ADT Bundle for windows的各种问题总结 1.解决国内访问Google服务器的困难: 1.启动 Android SDK Manager : 2.打开主界面,依次选择「Too ...
- android开发入门经验 ADT Bundle环境搭建
现在有许多做开发的转做移动端开发,做J2EE的转做Android开发,我也把自己的一些入门经验与大家分享一下,希望能给你带来帮助. 工具/原料 JDK,ADT,JAVA 方法/步骤 开发工具的准备 ...
- 迁移ADT/ANT构建的Android项目至Gradle,a walk through。
LibModule 配置更新 9 months ago app 配置更新 9 months ago gradle/wrapper 配置更新 9 months ago screenshots ...
- 搭建eclipse的安卓开发环境(eclipse+jdk+adt+sdk)
学校暑期大作业让用安卓写一个app,有两种方案(android stduio+sdk和eclipse+jdk+adt+sdk)折腾了几天发现还是后者好用,但是安装环境和下载真的是去了半条命,(不过由于 ...
- [原创]关于mybatis中一级缓存和二级缓存的简单介绍
关于mybatis中一级缓存和二级缓存的简单介绍 mybatis的一级缓存: MyBatis会在表示会话的SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候 ...
- Android Studio vs. Eclipse ADT Comparison
Android Studio 是一个新的基于 IntelliJ IDEA Android 的安卓开发环境,它对 Eclipse ADT 进行了改进并新增了功能. Feature Android Stu ...
- ADT - Eclipse 常用快捷键
ADT - Eclipse 常用快捷键 Alt + / : 自动补全 F3 : 打开类的源码 Ctrl + D : 删除选中行 Ctrl + 1 : 自动弹出修改建议 Ctrl + Shift + J ...
- MyBatis 延迟加载,一级缓存,二级缓存设置
什么是延迟加载 resultMap中的association和collection标签具有延迟加载的功能. 延迟加载的意思是说,在关联查询时,利用延迟加载,先加载主信息.使用关联信息时再去加载关联信息 ...
- ADT for Eclipse无法升级到23.0的解决方法(确保您的网络能够访问google的地址)
进行以下步骤时,请确保您的网络能够访问google的地址,因为有可能是无法访问google地址导致无法升级,该文不是为了解决这个问题!!! 最近一次的升级,ADT无法从ADT 22.X升级到23.0. ...
随机推荐
- 海量数据处理面试题(2) 将用户的query按出现频度排序
问题描述: 有10个文件,每个文件1G,每个文件的每一行存放的都是用户的query,每个文件的query都可能重复.要求你按照query的频度排序. 分析:一般海量数据采用分治法时,都要用到哈希,将相 ...
- 乘风破浪:LeetCode真题_018_4Sum
乘风破浪:LeetCode真题_018_4Sum 一.前言 前面我们已经练习过了三个数相加的集合运算,现在变成了四个数,其实道理是一样的.三个数的时候可以转成两个数的加法,最后来解决,而四个数的可以转 ...
- Win10离线安装.NET Framework 3.5的方法技巧(附离线安装包下载)
原文链接: https://www.windows10.pro/win10-net-framework-3-5/ 在Windows10中,当我们安装某些软件的时候会提示“你的电脑上的应用需要使用以下W ...
- 基础知识:Promise(整理)
基础知识:Promise(整理) (来自牛客网)下面关于promise的说法中,错误的是(D) A. resolve和reject都是直接生成一个进入相应状态的promise对象,其参数就是进入相应状 ...
- 7、Node.js EventEmitter
#######################################################################################介绍Node.js Eve ...
- Centos7安装Redis4.0.8
今天安装了CentOS7 1708 在安装redis时报错 make[1]: *** [adlist.o] 错误 127 因为Redis是C实现的,需要gcc来进行编译,所以原因是系统未安装gcc, ...
- TTransport 概述
TTransport TTransport主要作用是定义了IO读写操作以及本地缓存的操作,下面来看TIOStreamTransport是如何实现的. public abstract class TTr ...
- Spring Security 自定义配置(1)
@Configuration @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapte ...
- collecitons.deque
python队列,可以使用collections里面的deque,将列表当作队列使用. deque方法有: from collections import deque deque.append() d ...
- 日常踩坑——rand()总是出现重复数据
写了一个生成随机数组的函数,然后跑出来,结果总是…… 然后,很奇怪的是一步一步调试,它就没问题了,WTF??? 问题出在:重复写了srand(time(NULL)),只保留一个就好了. int* ge ...