프로그래밍

 3198, 1/160 회원가입  로그인  
   twt525
   [c] 씨를 공부하는 학생입니다 소스질문 ㅠㅠ

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3035 [복사]


제가 열혈C 개정판으로 씨를 공부하구있습니다.
모르는게 있어서 질문드립니다~

첫째는 어떤수 X 어떤수 + 어떤수 = 어떤수 이렇게 나오는 프로그램을만드는것입니다
ex) 1 X 2 X 3 = 6 으로요
그런데 모르는게 잠시생겨서 여쭈어봅니다
저는
#include <stdio.h>
int main(void)
{
        int num1, num2, num3;
        int result;
                result = num1*num2+num3;
                printf("세 개의 정수 : ");
        scanf("%d %d %d", &num1, &num2, &num3);
                printf("%d X %d + %d = %d\n", num1, num2, num3, result);
        return 0;
}
이렇게했고
답안은
#include <stdio.h>
int main(void)
{
        int num1, num2, num3;
        int result;
        printf("세 개의 정수 : ");
        scanf("%d %d %d", &num1, &num2, &num3);
        result = num1*num2+num3;
        printf("%d X %d + %d = %d\n", num1, num2, num3, result);
        return 0;
}
이렇게되있었는데 result = num1*num2+num3; 이게 처음에 쓰면 왜 오류가 나는지 알고싶어요ㅠ

  Hit : 4169     Date : 2011/06/02 11:55



    
sdc04303 저도 시를 공부하고잇는데영ㅎㅎ
아마 오류가 나는건 처음에 변수 result가 0이 아니라는거죠(변수num123도 포함)
왜냐하면요.. 변수를 처음만들면 쓰레기값인가(?) 막 이상한 수가 저장되있어요.
답안에서는 num에 숫자를 입렫하고 reault에 넣어서 값이 입력되서 출력되는것갘아요.ㅎㅎㅎ
2011/06/03  
말레박 입력을 받기전에 연산을해버려서 에러가나는듯합니다 2011/06/03  
sdc04303 어 ㅈㅅㅈㅅ 잘못봣네욯ㅎㅎ 위에 제가 답한게아니라
위에예제는 값을 입력받지않고 result에 넣어서 이상한 값이나옴ㅇㅇ
답암에서는 값을 입력받고 result에 넣고 출력해서 된거에요 ㅎㅎ
아니면 printf("%d X %d + %d = %d",num1,num2,num3,num1Xnum2+num3)
이렇게 해도 됩니당ㅎㅎㅎ
2011/06/03  
profreez int num1, num2, num3;

이것을
int num1 = 0, num2 = 0, num3 = 0;

이렇게 해놓고 출력해보세요.
뒤에 숫자를 마음대로 바꿔보시구요.
2011/06/03  
peakfin 처음에 변수를 선언하고 초기화를 안하면 쓰레기 값이 들어있습니다.
num1 num2 num3 result모두 쓰레기 값이 들어있는상태에서 계산을 해봐야 쓰레기 값만 나옵니다.
계산이후 num1 num2 num3에 값을 입력받아봐야 result의 값에는 변화가 없습니다.
c의코드는 함수안에서 윗줄부터 순차적으로 실행됩니다.
2011/06/03  
stares 자 소스를 보시면

int num1, num2, num3;
int result;
result = num1*num2+num3;
printf("세 개의 정수 : ");

이렇게 코딩을 하셧습니다.

하지만 지금 필자님은 각 변수 (num1,num2, num3, result)에 아무것도 넣지않으시고 연산을 하신것입니다.

마치 x+y+z=a 라는 방정식을 먼저 풀어내고 대입을 한것과 마찬가지입니다.
윗 말 이해도 안되고 말도안되죠? 값을모르는데 식을 풀어낸다뇨~


result = num1*num2+num3;
이부분을 값을 입력받는 scanf 아래에 넣으시면 됩니다~
2011/06/03  
twt525 stares// 감사합니다! 제일 쉽고 이해잘되게 설명해주셧군요~

다른분들도 답변감사합니다~
2011/06/04