프로그래밍

 3198, 1/160 회원가입  로그인  
   dokito
   사칙연산 계산 프로그래밍 짠건데요

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


#include<stdio.h>

int main()
{
        // a~h는 피연산자
        int a,b,c,d,e,f = 0 ;
        double g,h = 0 ;
        
        int result_of_sum = 0 ;
        int result_of_minus = 0 ;
        int result_of_multi = 0 ;
        double result_of_division = 0 ;

        printf("덧셈을 할 피연산자 두개를 입력해 주십시오 \n") ;
        scanf("%d %d" , &a , &b ) ;
        printf("뺄셈을 할 피연산자 두개를 입력해 주십시오 \n") ;
        scanf("%d %d" , &c , &d ) ;
        printf("곱셈을 할 피연산자 두개를 입력해 주십시오 \n") ;
        scanf("%d %d" , &e , &f ) ;
        printf("나눗셈을 할 피연산자 두개를 입력해 주십시오 \n") ;
        scanf("%lf %lf" , &g , &h ) ;

        result_of_sum = a + b ;
        result_of_minus = c - d ;
        result_of_multi = e * f ;
        result_of_division = g / h ;
        
        printf("%7d + %7d = %7d \n" , a , b , result_of_sum) ;
        printf("%7d - %7d = %7d \n" , c , d , result_of_minus) ;
        printf("%7d * %7d = %7d \n" , e , f , result_of_multi) ;
        printf(" %5.2f /  %5.2f =   %5.2f \n" , g , h , result_of_division) ;
        
}

여기에서 왜
                int a,b,c,d,e,f = 0 ;
        double g,h = 0 ;
        
        int result_of_sum = 0 ;
        int result_of_minus = 0 ;
        int result_of_multi = 0 ;
        double result_of_division = 0 ;

0이나 임의의 숫자로 왜 초기화를 해줘야하나요?
어차피 쓸모도 없는 숫자인데 왜 들어가야하는지 궁금하네요

  Hit : 4351     Date : 2012/03/22 12:43



    
dokito 저희 집에서는 초기화를 안해도 실행이 되지만 학교에서는 초기화를 안하면 실행이 안되더군요 2012/03/22  
dokito 책에서는 변수선언과 동시에 0으로 초기화하는것이 좋다고 하구요.. 메모리 먹어서 그런가요? 2012/03/22  
우느님 변수선언과 동시에 0으로 초기화하는 것은 쓰레기값 때문입니다.

변수를 선언하게되면 그 변수에 쓰레기값이라는 무작위의 쓸모없는 데이터들이 들어가있습니다.
그 데이터는 0일 수도 있고, 전혀 알수없는 이상한 값일 수도 있습니다.

소스를 짜다보면 이 쓰레기값때문에 예상한 결과와 전혀 다른(결과가 우주로 가는) 경우가 있습니다.

이것은 앞으로 코딩을 많이 해보신다면 알게 되실겁니다.

//그런데 질문자님의 소스를 보니 굳이 0으로 초기화할 필요가 없을 것 같은데,,
//학교에서는 안돌아갔다고 하시니 이상하군요.
2012/03/22  
SKTCTO 저희 집도 안써도 되는군염....

컴파일러 문제가 아닐런지??
2012/03/25