C语言分离任何复数的实部与虚部下面是以23+456i为例写的,但一执行就死掉(假定都是a+bi的形式,排除了bi+a的形式)#include void main(){printf("分离复数23+456i的实部与虚部");char str[100]={"23+456i"};ch

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/09 03:42:20

C语言分离任何复数的实部与虚部下面是以23+456i为例写的,但一执行就死掉(假定都是a+bi的形式,排除了bi+a的形式)#include void main(){printf("分离复数23+456i的实部与虚部");char str[100]={"23+456i"};ch
C语言分离任何复数的实部与虚部
下面是以23+456i为例写的,但一执行就死掉(假定都是a+bi的形式,排除了bi+a的形式)
#include
void main()
{
printf("分离复数23+456i的实部与虚部");
char str[100]={"23+456i"};
char str1[50];//存实部
char str2[50];//存虚部
char g,h;

for(int i=0;(g=str[i])!='\0';i++)
{
if(str[i+1]=='+')
{
for(int j=0;(h=str[i+1])!='i';j++)
str2[j]=str[i+1];
}
else
str1[i]=str[i];

}
printf("实部为:%s\n",str1);
printf("虚部为:%s\n",str2);
}
分离的时候以“+”号为分割点.分离虚部的时候以“i”前一个数字结束.

C语言分离任何复数的实部与虚部下面是以23+456i为例写的,但一执行就死掉(假定都是a+bi的形式,排除了bi+a的形式)#include void main(){printf("分离复数23+456i的实部与虚部");char str[100]={"23+456i"};ch
#include <stdio.h>
void main()
{
\x09
\x09char str[100]={"23+456i"};
\x09char str1[50];//存实部
\x09char str2[50];//存虚部
\x09
\x09printf("分离复数%s的实部与虚部\n", str );
\x09
\x09for(int i=0;str[i]!='\0';i++)
\x09{
\x09\x09if(str[i]=='+')
\x09\x09{
\x09\x09\x09str1[i]='\0' ;
\x09\x09\x09i++;
\x09\x09\x09for(int j=0;str[i]!='i';j++)
\x09\x09\x09\x09str2[j]=str[i++];
\x09\x09\x09str2[j]='\0';
\x09\x09\x09break ; //取完了就结束循环
\x09\x09}
\x09\x09else
\x09\x09\x09str1[i]=str[i];
\x09}
\x09
\x09printf("实部为:%s\n",str1);
\x09printf("虚部为:%s\n",str2);
}