C语言复数的加减及输出结构体

一、

#include<stdio.h>

typedef struct complex
{
	int real;	//实部
	int imag;	//虚部
}complex;

/*
	功能:复数加法
	参数:两个复数
	返回值:两个复数的和
*/
complex complexadd(complex x,complex y)
{
	complex sum;
	sum.real = x.real + y.real;
	sum.imag = x.imag + y.imag;
	return sum;
}

/*
	功能:复数减法
	参数:两个复数
	返回值:两个复数的差
*/
complex complexsub(complex x,complex y)
{
	complex sum;
	sum.real = x.real - y.real;
	sum.imag = x.imag - y.imag;
	return sum;
}

/*
	功能:打印复数
	参数:一个复数
*/
void printfcomplex(complex x)
{
	printf("%d",x.real);
	if(x.imag > 0)
	{
		printf("+");
	}
	printf("%d\n",x.imag);
}

int main()
{
	complex f1 = {3,-5};
	complex f2 = {-5,8};
	printfcomplex(f1);
	printfcomplex(f2);
	complex f3 = complexadd(f1,f2);
	printfcomplex(complexadd(f1,f2));
	printfcomplex(f3);
	printfcomplex(complexsub(f1,f2));
	return 0;
}

二、分文件

complex.c

#include<stdio.h>
#include"complex.h"

/*
	功能:复数加法
	参数:两个复数
	返回值:两个复数的和
*/
complex complexadd(complex x,complex y)
{
	complex sum;
	sum.real = x.real + y.real;
	sum.imag = x.imag + y.imag;
	return sum;
}

/*
	功能:复数减法
	参数:两个复数
	返回值:两个复数的差
*/
complex complexsub(complex x,complex y)
{
	complex sum;
	sum.real = x.real - y.real;
	sum.imag = x.imag - y.imag;
	return sum;
}

/*
	功能:打印复数
	参数:一个复数
*/
void printfcomplex(complex x)
{
	printf("%d",x.real);
	if(x.imag > 0)
	{
		printf("+");
	}
	printf("%di\n",x.imag);
}

main.c

#include<stdio.h>
#include"complex.h"		// complex 头文件

int main()
{
	complex f1 = {3,-5};		// 结构体初始化
	complex f2 = {-5,8};
	printfcomplex(f1);			// 打印复数
	printfcomplex(f2);
	complex f3 = complexadd(f1,f2);
	printfcomplex(complexadd(f1,f2));
	printfcomplex(f3);
	printfcomplex(complexsub(f1,f2));
	return 0;
}

complex.h

#ifndef __COMPLEX_H__
#define __COMPLEX_H__

// 类型声明
typedef struct complex
{
	int real;	//实部
	int imag;	//虚部
}complex;

/*
	功能:复数加法
	参数:两个复数
	返回值:两个复数的和
*/
complex complexadd(complex x,complex y);

/*
	功能:复数减法
	参数:两个复数
	返回值:两个复数的差
*/
complex complexsub(complex x,complex y);

/*
	功能:打印复数
	参数:一个复数
*/
void printfcomplex(complex x);

#endif

到此这篇关于C语言复数的加减及输出结构体的文章就介绍到这了,更多相关C语言复数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C++ 实现一个复数类的实例代码

    要求 实现⼀个复数类 Complex . Complex 类包括两个 double 类型的成员 real 和 image ,分别表示复数的实部和虚部. 对 Complex 类,重载其流提取.流插⼊运算符,以及加减乘除四则运算运算符. 重载流提取运算符 >> ,使之可以读⼊以下格式的输⼊(两个数值之间使⽤空⽩分隔),将第⼀个数值存为复数的实部,将第⼆个数值存为复数的虚部: -1.1 2.0 +0 -4.5 重载流插⼊运算符 << ,使之可以将复数输出为如下的格式⸺实部如果是⾮负数,则

  • 简单实现C++复数计算器

    本文实例为大家分享了简单实现C++复数计算器的具体代码,供大家参考,具体内容如下 1.有关计算器的功能  A,实现多个复数(包括实数)的加减乘除,大小比较,   B.实现十进制实数的进制转换,可以转换任意进制 2.有关设计的原理  A.复数计算的部分,采用运算符的重载,进行复数的加减乘除以及大小比较  对于输入输出,(>>和<<),加减乘除运算进行重载.  输入的重载,实现a+bi形式的复数的输入.  输出的重载,实现实数的输出(实现特殊的只输出实部虚部之类的).  加减乘除的重载

  • C++-操作符重载、并实现复数类详解

    首先回忆下以前学的函数重载 函数重载 函数重载的本质为相互独立的不同函数 通过函数名和函数参数来确定函数调用 无法直接通过函数名得到重载函数的入口地址 函数重载必然发生在同一个作用域中 类中的函数重载 静态成员函数能与普通成员函数建立重载关系 全局函数和成员函数不能构成重载关系 操作符重载(operator) 什么是操作符重载? 大家都知道,在C里,有'+,-,*,/'这些操作符,且它们的功能就是实现普通变量运算. 由于C++是面向对象的,遇到的变量大多都是对象,所以优化了C里的操作符,使它们拥

  • C++实现小型复数计算器

    小型复数计算器项目设计,供大家参考,具体内容如下 一.问题描述及功能要求 1.实现复数的设置和显示. 2.声明一个复数类Complex,重载运算符 "+". "-". "*". "/",使之能用于复数的加.减.乘.除,运算符重载函数作为Complex类的成员函数. 3.声明一个复数类Complex,重载运算符 "+",使之能用于复数的加法运算.参加运算的两个运算量可以都是类对象,也可以其中有一个是整数,顺序

  • C语言复数的加减及输出结构体

    一. #include<stdio.h> typedef struct complex { int real; //实部 int imag; //虚部 }complex; /* 功能:复数加法 参数:两个复数 返回值:两个复数的和 */ complex complexadd(complex x,complex y) { complex sum; sum.real = x.real + y.real; sum.imag = x.imag + y.imag; return sum; } /* 功能

  • 易语言九九乘除加减表制作方法

    易语言制作  九九加 减 乘 除表 1.首先先新建一个Windows窗口程序 2.添加 编辑框 和 按钮 然后修改按钮名称 3.双击 启动窗口 和 按钮 输入以下变量和代码 输入完成 可以使用加法表了 4.减法 乘法 除法 输入以下代码 完成 总结:以上就是本次讲解的全部步骤,感谢大家的阅读和对我们的支持.

  • 使用Python向C语言的链接库传递数组、结构体、指针类型的数据

    使用python向C语言的链接库传递数组.结构体.指针类型的数据 由于最近的项目频繁使用python调用同事的C语言代码,在调用过程中踩了很多坑,一点一点写出来供大家参考,我们仍然是使用ctypes来调用C语言的代码库. 至于如何调用基础数据类型的数据,请大家参考我的另外一篇文章:Python使用ctypes调用C/C++的方法 1. 使用python给C语言函数传递数组类型的参数 想必很多时候,C语言会使用数组作为参数,在之前我们使用过ctypes的一些数据类型作为C语言参数类型,包括byte

  • C语言自定义类型超详细梳理之结构体 枚举 联合体

    目录 一.什么是结构体 1.结构体实现 2.匿名结构体类型 3.结构体自引用 4.结构体的内存对齐 5.结构体位段  二.什么是枚举 1.枚举类型的定义 2.枚举的优点 三.联合(共用体) 1.什么是联合(共用体) 2.联合(共用体)的定义 3.联合(共用体)的初始化 总结 一.什么是结构体 结构是一些值的集合,这些值称为成员变量.结构的每个成员可以是不同类型的变量. //结构体声明 struct tag //struct:结构体关键字,tag:标签名,合起来是结构体类型(类型名) { memb

  • C语言中使用qsort函数对自定义结构体数组进行排序

    目录 使用qsort函数对自定义结构体数组进行排序 结构体 排序函数 总体代码 C语言 qsort()函数详解 1.qsort概念介绍 2.qsort()函数实现(循序渐进式讲解) 3.小结 使用qsort函数对自定义结构体数组进行排序 qsort进行排序的数组存储的不能是结构体的指针,需要是结构体本身. 结构体 struct student{     char* id;     int mark; }arr[4], test0={"0001",80}, test1={"00

  • C语言自定义数据类型的结构体、枚举和联合详解

    结构体基础知识 首先结构体的出现是因为我们使用C语言的基本类型无法满足我们的需求,比如我们要描述一本书,就需要书名,作者,价格,出版社等等一系列的属性,无疑C语言的基本数据类型无法解决,所以就出现了最重要的自定义数据类型,结构体. 首先我们创建一个书的结构体类型来认识一下 struct Book { char name[20]; char author[20]; int price; }; 首先是struct是结构体关键字,用来告诉编译器你这里声明的是一个结构体类型而不是其他的东西,然后是Boo

  • Go 语言结构体链表的基本操作

    目录 1. 什么是链表 2. 单项链表的基本操作 3. 使用 struct 定义单链表 4. 尾部添加节点方法一 5. 头部插入节点方法一 6. 指定节点后添加新节点 7. 删除节点 1. 什么是链表 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的. 链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成.每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域. 使用链表结构可以避免在使用数组

  • 浅谈C语言共用体和与结构体的区别

    共用体与结构体的区别 共用体: 使用union 关键字 共用体内存长度是内部最长的数据类型的长度. 共用体的地址和内部各成员变量的地址都是同一个地址 结构体大小: 结构体内部的成员,大小等于最后一个成员的偏移量+最后一个成员大小+末尾的填充字节数. 结构体的偏移量:某一个成员的实际地址和结构体首地址之间的距离. 结构体字节对齐:每个成员相对于结构体首地址的偏移量都得是当前成员所占内存大小的整数倍,如果不是会在成员前面加填充字节.结构体的大小是内部最宽的成员的整数倍. 共用体 #include <

  • 浅谈C语言结构体

    目录 前言 什么是结构体 结构体类型的声明 结构的自引用 结构体变量的定义和初始化 结构体的使用 结构体内存对齐 结构体传参 总结 前言 在C语言中,除了内置的许多数据类型,C语言还为我们提供了自定义的数据类型,其中就包括结构体这一数据类型. 今天就让我们来学习一下与结构体相关的知识吧! 什么是结构体 首先我们要知道,什么是结构体? 在现实生活中,每一个事物都是复杂的,拥有许多的属性,为了表示这些属性,我们不可能用单一的数据类型来表示. 例如:一只猫具有的属性有:年龄.体重.名字.品种等等. 为

  • C语言全面梳理结构体知识点

    目录 一.什么是结构体 二.结构体的定义 三.结构体变量的定义 四.结构体变量的初始化 五.结构体变量的赋值 六.引用结构体变量中的成员 七.结构体变量的传参问题 八.传输地址带来的问题 九.动态结构体数组 十.关键字typedef 十一.C++中的引用 一.什么是结构体 为了更好地模拟现实,需要把各种基本数据类型组合在一起构成一种新的复合数据类型,我们把这种自定义的数据类型称为结构体.结构体是程序员根据实际需求,把各种基本数据类型组合在一起构成的一种新的复合数据类型. 二.结构体的定义 结构体

随机推荐