c++ 연습문제 질문입니다

black0806의 이미지

If ( 1 + x > pow(x, sqrt(2)) 
{
          y = y + x;
}

이 코드에서 오류를 찾으라고 하는데
잘 모르겠네요
도와주세요 ㅜㅜ

gksrlf2ek의 이미지

씨플 하지는 않지만 찾아보니깐 pow(a, b)가 a의 b승 이라는데 sqrt(2)면 무리수잖아요? 무리수 승을 계산하는것이 불가능하기때문에 오류가 생기지않을까요?

MOV myLIFE, Passion

klara의 이미지

> 무리수 승을 계산하는것이 불가능하기때문에

수학적으로 전혀 문제 없으며, 실제로는 부동소수점 표현은 유한 소수이기 때문에 더더욱 문제되지 않습니다.

pchero의 이미지

오류가 너무 많네요..

먼저 문법적으로 if 구문에서 If 대문자가 오류이고, 괄호 열고 닫기가 제대로 안되어 있습니다.
그리고 y 변수 초기화가 안되어 있는 상태에서 y=y+x; 는 버그입니다.

올려주신 소스 내용으로는 전체적인 흐름 파악이 어렵습니다.

---------------------------------
제일 왼쪽이 저입니다 :)

black0806의 이미지

답이 c++ 문법안에서 무리수를 제곱으로 연산할 수 없기 때문인가요?

jick의 이미지

int main(void) { } 한 다음 함수 안에 해당 코드를 쳐넣어서 컴파일을 해보시면 30초 내로 뭐가 잘못되었는지 알 수 있습니다.

pow 함수는 임의의 실수를 지수로 사용할 수 있습니다. 그리고 수학적으로 a^(sqrt(2))는 매우 잘 정의된 연산입니다. 에러가 날 이유가 없습니다.

(게다가 위에 다른 분이 말씀하셨듯이 어차피 C에서 유리수/무리수를 구분하지도 않고요.)

yukariko의 이미지

이 문제의 오류는 pow 에 sqrt를 넣어서가 아닙니다.
애초에 pow함수에 들어가는 인자는 double형이기 때문에 매우 당연한 표현입니다.
아마 이문제의 답은 1이 아니라 1.0이 되어야 하는것일겁니다.
우측이 실수형이기때문에 좌측도 실수형 값이 들어가야 하는것이죠.
사실 형변환을 다 해주기때문에 틀린건아니지만요.
2도 2.0으로 바꿔주어야 할것같네요.

익명 사용자의 이미지

소괄호가 하나 빠져있는 것 같습니다. 그리고 문제 있을지 없을지는 모르겠지만 sqrt 도 명시적으로 2.0 으로 해주는게 좋아 보이네요.

kukyakya의 이미지

자꾸 1이나 2를 1.0이나 2.0으로 실수형으로 표현해야한다고 하시는 분들이 계신데 전혀 그렇지 않습니다.

자동으로 형변환을 해줄 뿐더러, C++11 표준에서는 더욱 더 명확하게 integral type에 대해서 작동하도록 명시하고 있습니다. (sqrt : http://en.cppreference.com/w/cpp/numeric/math/sqrt, pow : http://en.cppreference.com/w/cpp/numeric/math/pow)

괄호가 하나 빠졌기 때문이라고 하는 것이 가장 맞는 답변일 것으로 보입니다.

black0806의 이미지

정말 고맙습니다.

소괄호 때문이네요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.