当前位置:首页 » 编程语言 » c语言虚部

c语言虚部

发布时间: 2022-09-07 18:37:01

c语言分离任何复数的实部与虚部

#include<stdio.h>
voidmain()
{

charstr[100]={"23+456i"};
charstr1[50];//存实部
charstr2[50];//存虚部

printf("分离复数%s的实部与虚部 ",str);

for(inti=0;str[i]!='';i++)
{
if(str[i]=='+')
{
str1[i]='';
i++;
for(intj=0;str[i]!='i';j++)
str2[j]=str[i++];
str2[j]='';
break;//取完了就结束循环
}
else
str1[i]=str[i];
}

printf("实部为:%s ",str1);
printf("虚部为:%s ",str2);
}

② 用c语言 如何编写两个复数的运算啊 都含有虚部 谢谢啊

定义一个struct作为复数,然后分别定义加减剩除运算。可以增加一个函数printcomplex来在主函数中以数学的形式输出复数。
typedef struct complex
{
double real; //实部
double image; //虚部
} COMPLEX;

COMPLEX add(COMPLEX a,COMPLEX b) //加法
{
COMPLEX sum;
sum.real = a.real+b.real;
sum.image = a.image+b.image;
return sum;
}

COMPLEX sub(COMPLEX a,COMPLEX b) //减法
{
COMPLEX diff;
diff.real = a.real-b.real;
diff.image = a.image-b.image;
return diff;
}

COMPLEX mul(COMPLEX a,COMPLEX b) //乘法
{
COMPLEX acc;
acc.real = a.real*b.real-a.image*b.image;
acc.image = a.real*b.image+a.image*b.real;
return acc;
}

COMPLEX divi(COMPLEX a,COMPLEX b) //除法
//除法去分母可以转换为乘法
{
COMPLEX quo;
double den = b.real*b.real+b.image*b.image; //分母
/* 先判断除数是否为0,因为均为double型,所以不能 直接与0作比较,而要用绝对值是否小于某个极小值e(读伊夫西龙???)来判断是否为0,这里取e=10e-10 */
if ((abs(b.real)<10e-10) && (abs(b.image)<10e-10))
{
printf("Divivd by Zero");
exit(0); //强制退出程序
}

quo.real = a.real*b.real+a.image*b.image;
quo.real /= den;
quo.image = a.image*b.real+a.real*b.image;
quo.image /= den;
return quo;
}

void printcom(COMPLEX a) //输出复数a
{
printf("%lf+%lfi",a.real,a.image);
}

③ 傅立叶C语言函数中有实部和虚部,他们是什么,比如我采了一组正弦电压信号。想要得到幅值要怎么弄

实部和虚部的平方和开根号的2倍为半幅值,4倍为全幅值。
4*sqrt(ar[i]*ar[i]+ai[i]*ai[i]);ar是实部,ai是虚部。

④ c语言中输入形如"1.00+-2.00i"的标准形式虚数 要提取实部和虚部 该如何编译程序

直接格式化输入就行了。

#include<stdio.h>
intmain()
{
floata,b;
scanf("%f+%fi",&a,&b);
printf("a=%fb=%f ",a,b);
return0;
}

输入:1.00+-2.00i
输出:a=1.000000 b=-2.000000

⑤ C语言在复数内部用浮点数定义其实部和虚部 设计实现复数的+-*/运算的四个函数

给你一个做加法的示例:

#include <stdio.h>

/*定义复数结构体*/

typedef struct
{
double real; /*复数的实部*/
double image; /*复数的虚部*/
}complex;

/*实现复数加法*/

complex add(complex c1,complex c2)
{
complex res;
res.real=c1.real+c2.real;
res.image=c1.image+c2.image;
return res;

}
/*测试*/
int main()
{
complex c1,c2;
c1.real=1;
c1.image=2;
c2.real=3;
c2.image=4;
complex sum=add(c1,c2);

printf("the sum of c1 and c2 is ( %f,%f )\n",sum.real,sum.image);
return 0;

}

⑥ 使用c语言,生成一个实虚部分别为16比特的复数序列,长度为839.

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

constintMAXSIZE=839;

typedefstructcomplex{
unsignedshortreal;
unsignedshortimage;
}COMPLEX;

char*toString(unsignedshortn,chars[]){
inti=15;
s[16]='';
while(i>=0){
s[i]=n%2+'0';
n/=2;
--i;
}
returns;
}

voidshow(COMPLEXa[],intn){
inti;
chars[17];
for(i=0;i<n;++i){
printf("%6d:%s ",a[i].real,toString(a[i].real,s));
printf("%6d:%s ",a[i].image,toString(a[i].image,s));
}
}

intmain(){
COMPLEXmyvector[MAXSIZE];
inti,n=7;
srand((unsignedshort)time(NULL));
for(i=0;i<n;++i){
myvector[i].real=rand()%100;
myvector[i].image=rand()%100;
}
show(myvector,n);
return0;
}

⑦ 输入实部和虚部,求该复数 C语言

#include "stdio.h"

main()
{
float a,b;
printf("input a and b:");
scanf("%f %f",&a,&b);
printf(">>%.g+%.gi\n",a,b);
}

热点内容
FTP服务器本地策略 发布:2025-01-13 13:20:47 浏览:485
地下城堡2挂机脚本 发布:2025-01-13 13:20:44 浏览:205
web云服务器配置 发布:2025-01-13 13:19:54 浏览:459
小康密码是多少 发布:2025-01-13 13:19:13 浏览:41
javafile类 发布:2025-01-13 13:19:08 浏览:83
c语言求逆 发布:2025-01-13 13:14:43 浏览:929
中控大屏怎么看配置 发布:2025-01-13 13:11:33 浏览:912
linux多行删除 发布:2025-01-13 13:06:01 浏览:200
传奇3脱机脚本 发布:2025-01-13 13:05:08 浏览:751
java请求https 发布:2025-01-13 12:53:35 浏览:868