daima

    xiaoxiao2021-03-25  171

    # include<stdio.h> # include<stdlib.h> # include<string.h> int Q[4],q=0; int zh(char s[],int begin,int end) //负责将字符串数字转换为整型数字 { int value=0;      for(int h=begin;h<end;h++){               value = value*10;               value = value + (s[h]-'0');}         return value; } void HQSS(char s[]) //负责从字符串中提取出实部和虚部 要对字符串进行分类讨论 { int l = strlen(s); int i,flag1=0;           int h,shi=0,fu=0;        char fuhaofu='0'; for(i=0;i<l;i++)     //第一类 实部和虚部都存在     {             if((s[i]=='+'&& i!=0) || (s[i]=='-'&& i!=0))    //实部和虚部间的正负符号         {                    fuhaofu=s[i];              if(s[0]=='-')   //要讨论实部和虚部的正负情况              {                  shi = zh(s,1,i);                shi = - shi;                        }                 else                {                  shi = zh(s,0,i);              }                fu= zh(s,i+1,l-1);              if(fuhaofu=='-')                {                  fu = - fu;                 }                  flag1 = 1;                 break;                }                          }         int flag2=0;         if(flag1==0)    //第二类只存在实部和只存在虚部     {             if(s[l-1]=='i')    //只存在虚部         {               if(s[0]=='-')             {                    fu = zh(s,1,l-1);                 fu = -fu;                  fuhaofu = '-';               }             else             {                   fu = zh(s,0,l-1);           }                           }             else    //只存在实部         {                 if(s[0]=='-')               {                  shi= zh(s,1,l);                shi = - shi;               }                         else               {                  shi = zh(s,0,l);                }               flag2 = 1;                }              }         if(fu==0 && flag2==0)    //因为i和-i没有字符串数字 所以无法提取要特殊讨论     {            if(fuhaofu=='-')          {             fu = -1;              }                     else          {             fu = 1;          }       }      Q[q] = shi;q++;     Q[q] = fu;q++; } int main()     {         char a[10],b[10];      scanf("%s",a);       scanf("%s",b);               HQSS(a);     HQSS(b);     int shi,fu;         shi = Q[0]+Q[2];         fu = Q[1]+Q[3];         if(shi==0&&fu==0)     {   printf("0");     }     else     {    if(shi!=0)   printf("%d",shi);    if(fu>0&&fu!=1&&fu!=-1&&shi!=0)  printf("+%di",fu);    if(fu>0&&fu!=1&&fu!=-1&&shi==0)  printf("%di",fu);    if(fu<0&&fu!=1&&fu!=-1)  printf("%di",fu);    if(fu==1&&shi!=0)  printf("+i");    if(fu==1&&shi==0)  printf("i");    if(fu==-1)  printf("-i");     }     system("pause");     return 0;     } 
    转载请注明原文地址: https://ju.6miu.com/read-26303.html

    最新回复(0)