목적
  - 수학함수를 이용할줄 안다.
문제
사용자 삽입 이미지
코드

#include <iostream>
#include <cmath>

using namespace std;

int main(void)
{
 float faIn[3] = {0};
 float fTotal = 0.0;
 int i = 0;
 cout << "실수값 세 개를 입력하세요 : ";
 cin >> faIn[0] >> faIn[1] >> faIn[2];
 
 while(i<3)
 {
  cout << "│" << faIn[i] << "│ 의 제곱근 : " << sqrt(faIn[i] >= 0 ? faIn[i] : -1 * faIn[i] )<< endl;
  fTotal += sqrt(faIn[i] >= 0 ? faIn[i] : -1 * faIn[i] );
  i++;
 }

 cout << endl << "제곱근들의 합 : " << fTotal << endl;

 return 0;
}


해설
  - 절대값을 단순하게 조건문으로 구현했습니다.

if(faIn[i] >=)
 { faIn[i] = faIn[i]; }
  else { faIn[i] = - faIn[i]; }

  - 이 방식 말고 정수형은 abs(faIn[i]) 실수는 fabs(faIn[i])) 쓰면 됩니다. 정수형 abs 함수를 실수 인수에다 넣으면 소숫점이 잘려 나가므로 엉뚱한 결과가 나옵니다.

  - '│' 문자는 'ㅂ' 을 치고 난뒤에 바로 한자를 누르면 선택 창이 나옵니다.

참고
  - math.h / cmath 함수를 쓴 문제

Posted by 카켈




1. 목적
  - 수학함수를 적절하게 쓸줄 안다.

2. 문제
  - math.h 에 있는 로그함수/log, 지수함수/exp, 제곱근 함수/sqrt 를 이용한다.
  - 임의의 숫자를 입력받아 출력한다.
  - 출력 화면

임의의 실수 값을 입력하세요 : 46.8
==================================
       x =     46.800
  exp(x) = 2.113e+020
  log(x) =      3.846
 sqrt(x) =      6.841
==================================
Press any key to continue

3. 이해
  - 수학 함수를 쓸줄 아는가?
  - 원하는 지수 자리를 깔끔하게 출력할줄 아는가? (선택)

4. 코드

#include <stdio.h>
#include <math.h>

int main()
{

 float x = 0;
 printf("임의의 실수 값을 입력하세요 : ");

 scanf("%f", &x);
 printf("==================================\n");
 printf("       x = %10.3f\n", x);
 printf("  exp(x) = %10.3e\n", exp(x));
 printf("  log(x) = %10.3f\n", log(x));
 printf(" sqrt(x) = %10.3f\n", sqrt(x));

 printf("==================================\n");
 

 return 0;
}

5. 해설
  - math.h 에 있는 exp/log/sqrt 함수를 쓰면 원하는 수학 함수 결과를 얻을수 있습니다.
  - %10.3f, %10.3e 에 따라 결과가 소숫점형/지수형 이렇게 다르게 나올수 있습니다.
  - scanf 입력시 %f 파라에터에 맞는 자료형은 float* (주소) 입니다.

6. 참고
  - http://cplusplus.com/reference/clibrary/cmath/ cmath.h (math.h) 함수 설명

Posted by 카켈
이전페이지 1 다음페이지