C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[25553] [답변] 헉!...ㅈㅅ...테스트하고 다시 올립니다..
정성훈.해미 [sage5nor] 697 읽음    2003-05-12 16:37
테스트도 안해보고 올렸더니...버그가 많군요.

죄송...

테스트해 보고 다시 올려 드립니다.


#include<stdio.h>
#define STOP_OPER '\n'

void ex(int S_Real, int S_Imag, int* D_Real, int* D_Imag, char Op);

int main(void)
{
  int i;
  int ComplexCnt;
  int tmpReal, tmpImag;
  int Real,Imag;
  int Oper;

  Real = 0;
  Imag = 0;
  Oper = STOP_OPER;

  printf("입력할 복소수의 갯수는?:");
  scanf("%d",&ComplexCnt);
  printf("복소수를 입력하세요.(예:2 5)\n");
  for(i=0; i<ComplexCnt; i++)
  {
      printf("복소수 %d: ",i);
      scanf("%d %d", &tmpReal, &tmpImag);

      ex(tmpReal, tmpImag, &Real, &Imag, Oper);
      printf("\n%d %d, %d %d",tmpReal,tmpImag,Real,Imag);
      if(i<ComplexCnt-1)
      {
      printf("연산자(+,-,*,/): ");
      scanf("%s", &Oper);
      }
      else Oper = STOP_OPER;
  }

     printf("\n연산한 결과값은: %d %di", Real, Imag);
     return 0;
}

void ex(int S_Real, int S_Imag, int* D_Real, int* D_Imag, char Op)
{
    int R,I;

    R = *D_Real;
    I = *D_Imag;

    switch(Op)
    {
    case '+' :
          *D_Real += S_Real;
          *D_Imag += S_Imag;
          break;
    case '-' :
          *D_Real -= S_Real;
          *D_Imag -= S_Imag;
          break;
    case '*' :
          *D_Real = R * S_Real - I * S_Imag;
          *D_Imag = I * S_Real + R * S_Imag;
          break;
    case '/' :
          *D_Real = (R * S_Real + I * S_Imag)/(S_Real * S_Real + S_Imag * S_Imag);
          *D_Imag = (I * S_Real - R * S_Imag)/(S_Real * S_Real + S_Imag * S_Imag);
          break;
    default  :
         *D_Real = S_Real;
         *D_Imag = S_Imag;
         break;
    }
}


궁금해서죽을꺼같아 님이 쓰신 글 :
: 님 거마버여~ ^^* 그런데 님이 해주신거 곱셈 나눗셈을 지우믄 에러가 10개에서 2개로 줄고
: 나머지 수정하면 실행은 되는데여...초기값Real = 0; Imag = 0;  이렇게 설정 하셨죠?
: 결과는 무조건 0 0으루만 나오네여~
: 그런데여 제가 하는건 복소수입력을 일단 쭉받고나서 연산값 입력을 쭉받아서 하는거거든요
: 그래서 미리 받은 값들을 배열을 이용해야 할꺼같아요
: 암튼 님이 해주신거를 토대로 궁리 중입니다`~ ㅋㅋ (아휴~ 힘들어~~~)
: 기한이 급한 관계로 약간의 조언을 더 기다립니다~~ 수고요~
:
:
: #include<stdio.h> 
: #define STOP_OPER '\n' 
:  
:
:
:  main() 
: {
:     int ComplexCnt;
:     int Real,Imag;
:     char Oper;
:     
:     int i;
:   
:     int val[10],val2[10];
:     char Op[10];
:     
:  
:   
:   printf("입력할 복소수의 갯수는?:");
:   scanf("%d",&ComplexCnt);           
:   printf("복소수를 입력하세요.(예:2 5)\n");
:   for(i=0; i<ComplexCnt; i++) 
:   {
:       printf("복소수 %d: ");
:       scanf("%d %d", &Real, &Imag);
:       val[i]=Real;
:       val2[i]=Imag;
:   }
:
:
:
: printf("연산자(+,-,*,/): ");
:  for(i=0;i < (ComplexCnt-1);i++)
:       {
:          
:           scanf("%c", &Oper);
:           Op[i]=Oper;
:   
: switch(Oper)
:     {
:    
:         case '+' :
:               val[i] += val[i+1];
:               val2[i] += val2[i+1];
:               break;
:         case '-' :
:              val[i] -= val[i+1];
:              val2[i] -= val2[i+1];
:               break;
:        
:         default  : break;
:     }
:  }
:
:
:
:
: printf("\n연산한 결과값은: %d %di", val, val2);
:      return 0; 
: } 
:
:

+ -

관련 글 리스트
25538 저기..밑에 님들 ㄳ 함니다~^^ 그런데여.. 궁그메끄츤오딘가 596 2003/05/12
25560     ANSI C++은 자체적으로 복소수를 지원합니다. 김백일.cedar 1523 2003/05/12
25546     [답변] ex에서 계산된 값이 scanf에서 변경되어 ... 정성훈.해미 691 2003/05/12
25553             [답변] 헉!...ㅈㅅ...테스트하고 다시 올립니다.. 정성훈.해미 697 2003/05/12
25563                     [답변] 2번: 연산자 연속 입력구현... 정성훈.해미 903 2003/05/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.