c语言编程1、定义一个包含实部和虚部的结构体,实部和虚部都是double类型。 2、分别编写两个复数的加减乘除运算的函数,每个函数均有两个形参,且形参均为结构体指针。 3、从键盘输入两个复数,并选择进行哪种运算(加减乘除分别用a\b\c\d表示),输出其运算结果。 输入格式为: 3.21 -5.66 56.777 -62.112 a 输出格式保留三位小数 59.987-67.772i
时间: 2023-06-17 07:04:59 浏览: 146
C语言程序设计-将两个两位数的正整数a、b合并形成一个整数放在c 中;合并的方式是:将a数的十位和个位数依次放在c数的千位和十
以下是完整的代码实现:
```c
#include <stdio.h>
// 定义结构体
struct complex {
double real;
double imag;
};
// 加法
void complex_add(struct complex *c1, struct complex *c2, struct complex *result) {
result->real = c1->real + c2->real;
result->imag = c1->imag + c2->imag;
}
// 减法
void complex_sub(struct complex *c1, struct complex *c2, struct complex *result) {
result->real = c1->real - c2->real;
result->imag = c1->imag - c2->imag;
}
// 乘法
void complex_mul(struct complex *c1, struct complex *c2, struct complex *result) {
result->real = c1->real * c2->real - c1->imag * c2->imag;
result->imag = c1->real * c2->imag + c1->imag * c2->real;
}
// 除法
void complex_div(struct complex *c1, struct complex *c2, struct complex *result) {
double denominator = c2->real * c2->real + c2->imag * c2->imag;
result->real = (c1->real * c2->real + c1->imag * c2->imag) / denominator;
result->imag = (c1->imag * c2->real - c1->real * c2->imag) / denominator;
}
int main() {
// 定义变量
struct complex c1, c2, result;
char op;
// 读入数据
scanf("%lf %lf %lf %lf %c", &c1.real, &c1.imag, &c2.real, &c2.imag, &op);
// 进行运算
switch (op) {
case 'a':
complex_add(&c1, &c2, &result);
break;
case 'b':
complex_sub(&c1, &c2, &result);
break;
case 'c':
complex_mul(&c1, &c2, &result);
break;
case 'd':
complex_div(&c1, &c2, &result);
break;
default:
printf("无效操作符\n");
return 0;
}
// 输出结果
printf("%.3lf%+.3lfi\n", result.real, result.imag);
return 0;
}
```
使用方法:将上述代码保存为一个名为 `complex.c` 的文件,然后使用 C 语言编译器编译运行即可。
阅读全文