c语言抽象数据类型-复数

设计一个可进行复数运算的演示程序,要求实现下列四种基本运算:

1)由输入的实部和虚部生成一个复数;

2)两个复数求和;

3)两个复数求差;

4)两个复数求积;

5)打印输出一个复数。

复制代码
#include <stdio.h>
typedef struct {
	float x;
	float y;
} complex;
void creat(complex* c);
void outputc(complex a);
complex add(complex k, complex h);
complex sub(complex k, complex h);
complex chengji(complex k, complex h);
complex a, b, a1;
int cmd;
int main() {
	creat(&a);
	outputc(a);
	creat(&b);
	outputc(b);
	printf("相加");
	a1 = add(a, b);
	outputc(a1);
	printf("相减");
	a1 = sub(a, b);
	outputc(a1);
	printf("相乘");
	a1 = chengji(a, b);
	outputc(a1);
	return 0;
}
void creat(complex* c)
{
	float x1, y1;
	printf("\n输入实部 x = ");
	scanf_s("%f", &x1);
	printf("\n输入虚部 y = ");
	scanf_s("%f", &y1);
	c->x = x1;
	c->y = y1;
}

void outputc(complex a)
{
	printf("复数: %lf + %lfi\n", a.x, a.y);
}
complex add(complex k, complex h)
{
	complex l;
	l.x = k.x + h.x;
	l.y = k.y + h.y;
	return l;
}
complex sub(complex k, complex h)
{
	complex l;
	l.x = k.x - h.x;
	l.y = k.y - h.y;
	return l;
}
complex chengji(complex k, complex h)
{
	complex l;
	l.x = k.x * h.x - k.y * h.y;
	l.y = k.x * h.y + k.y * h.x;
	return l;
}
相关推荐
BackCatK Chen几秒前
第 1 篇:软件视角扫盲|TMC2240 软件核心特性 + 学习路径(附工具清单)
c语言·stm32·单片机·学习·电机驱动·保姆级教程·tmc2240
txzrxz24 分钟前
结构体排序,双指针,单调栈
数据结构·算法·双指针算法·单调栈·结构体排序
wWYy.29 分钟前
算法:二叉树最大路径和
数据结构·算法
梵刹古音1 小时前
【C语言】 格式控制符与输入输出函数
c语言·开发语言·嵌入式
一条大祥脚1 小时前
ABC357 基环树dp|懒标记线段树
数据结构·算法·图论
VekiSon1 小时前
Linux内核驱动——基础概念与开发环境搭建
linux·运维·服务器·c语言·arm开发
苦藤新鸡1 小时前
50.腐烂的橘子
数据结构·算法
无限进步_1 小时前
面试题 02.02. 返回倒数第 k 个节点 - 题解与详细分析
c语言·开发语言·数据结构·git·链表·github·visual studio
Hello World . .1 小时前
数据结构:栈和队列
c语言·开发语言·数据结构·vim
Yvonne爱编码2 小时前
JAVA数据结构 DAY1-集合和时空复杂度
java·数据结构·python