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实现的更多相关文章

  1. 本人在安装ADT Bundle for windows的各种问题总结

    本人在安装ADT Bundle for windows的各种问题总结 1.解决国内访问Google服务器的困难: 1.启动 Android SDK Manager : 2.打开主界面,依次选择「Too ...

  2. android开发入门经验 ADT Bundle环境搭建

    现在有许多做开发的转做移动端开发,做J2EE的转做Android开发,我也把自己的一些入门经验与大家分享一下,希望能给你带来帮助. 工具/原料 JDK,ADT,JAVA 方法/步骤   开发工具的准备 ...

  3. 迁移ADT/ANT构建的Android项目至Gradle,a walk through。

    LibModule 配置更新 9 months ago   app 配置更新 9 months ago   gradle/wrapper 配置更新 9 months ago   screenshots ...

  4. 搭建eclipse的安卓开发环境(eclipse+jdk+adt+sdk)

    学校暑期大作业让用安卓写一个app,有两种方案(android stduio+sdk和eclipse+jdk+adt+sdk)折腾了几天发现还是后者好用,但是安装环境和下载真的是去了半条命,(不过由于 ...

  5. [原创]关于mybatis中一级缓存和二级缓存的简单介绍

    关于mybatis中一级缓存和二级缓存的简单介绍 mybatis的一级缓存: MyBatis会在表示会话的SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候 ...

  6. Android Studio vs. Eclipse ADT Comparison

    Android Studio 是一个新的基于 IntelliJ IDEA Android 的安卓开发环境,它对 Eclipse ADT 进行了改进并新增了功能. Feature Android Stu ...

  7. ADT - Eclipse 常用快捷键

    ADT - Eclipse 常用快捷键 Alt + / : 自动补全 F3 : 打开类的源码 Ctrl + D : 删除选中行 Ctrl + 1 : 自动弹出修改建议 Ctrl + Shift + J ...

  8. MyBatis 延迟加载,一级缓存,二级缓存设置

    什么是延迟加载 resultMap中的association和collection标签具有延迟加载的功能. 延迟加载的意思是说,在关联查询时,利用延迟加载,先加载主信息.使用关联信息时再去加载关联信息 ...

  9. ADT for Eclipse无法升级到23.0的解决方法(确保您的网络能够访问google的地址)

    进行以下步骤时,请确保您的网络能够访问google的地址,因为有可能是无法访问google地址导致无法升级,该文不是为了解决这个问题!!! 最近一次的升级,ADT无法从ADT 22.X升级到23.0. ...

随机推荐

  1. 海量数据处理面试题(2) 将用户的query按出现频度排序

    问题描述: 有10个文件,每个文件1G,每个文件的每一行存放的都是用户的query,每个文件的query都可能重复.要求你按照query的频度排序. 分析:一般海量数据采用分治法时,都要用到哈希,将相 ...

  2. 乘风破浪:LeetCode真题_018_4Sum

    乘风破浪:LeetCode真题_018_4Sum 一.前言 前面我们已经练习过了三个数相加的集合运算,现在变成了四个数,其实道理是一样的.三个数的时候可以转成两个数的加法,最后来解决,而四个数的可以转 ...

  3. Win10离线安装.NET Framework 3.5的方法技巧(附离线安装包下载)

    原文链接: https://www.windows10.pro/win10-net-framework-3-5/ 在Windows10中,当我们安装某些软件的时候会提示“你的电脑上的应用需要使用以下W ...

  4. 基础知识:Promise(整理)

    基础知识:Promise(整理) (来自牛客网)下面关于promise的说法中,错误的是(D) A. resolve和reject都是直接生成一个进入相应状态的promise对象,其参数就是进入相应状 ...

  5. 7、Node.js EventEmitter

    #######################################################################################介绍Node.js Eve ...

  6. Centos7安装Redis4.0.8

    今天安装了CentOS7 1708 在安装redis时报错  make[1]: *** [adlist.o] 错误 127 因为Redis是C实现的,需要gcc来进行编译,所以原因是系统未安装gcc, ...

  7. TTransport 概述

    TTransport TTransport主要作用是定义了IO读写操作以及本地缓存的操作,下面来看TIOStreamTransport是如何实现的. public abstract class TTr ...

  8. Spring Security 自定义配置(1)

    @Configuration @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapte ...

  9. collecitons.deque

    python队列,可以使用collections里面的deque,将列表当作队列使用. deque方法有: from collections import deque deque.append() d ...

  10. 日常踩坑——rand()总是出现重复数据

    写了一个生成随机数组的函数,然后跑出来,结果总是…… 然后,很奇怪的是一步一步调试,它就没问题了,WTF??? 问题出在:重复写了srand(time(NULL)),只保留一个就好了. int* ge ...