volta2030   8년 전

소스코드입니다.

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

int main()
{
char now[9];
char start[9];
int i;
int tmp1;
int tmp2;
int sec = 3600;
int count = 0;

scanf("%s",now);
scanf("%s",start);

for(i=0;i<8;i++)
{
if(i+1%3!=0)
{
if(i%2==0)
{
tmp1 = tmp1+((now[i]-48)*10)*sec;
tmp2 = tmp2+((start[i]-48)*10)*sec;
}

else
{
tmp1 = tmp1+(now[i]-48)*sec;
tmp2 = tmp2+(start[i]-48)*sec;
}
printf("%d %d\n",tmp1,tmp2);
}

count = count + 1;

if(count%3==0)
{
sec = sec/60;
}
}


//now < strat ext 00:00:00 23:59:59 => 23:59:59
//절대 00:00:01초가 아님
printf("%d",tmp2-tmp1);
return 0;
}



for문을 돌려서 연산 후에 k를 출력하는 문제가 있다고 합시다.


k가 잘 나오더군요


그런...; loop문 값을 확인해보려고 printf를 사용해 loop되는 데이터를 출력했더니 값도 달라집니다;; 


조금 황당하네요 ㅎㅎ;;


왜 이런지 아는분 계실까요? 이건 마치... 양자역학의 전자같습니다..

#솔직히 소름돋았어요

onjo0127   8년 전

소스코드를 보여주실 수 있을까요??

volta2030   8년 전

첨부 했습니다!

jhpark0515   8년 전

그나마 덜 이상한 C++이 있어요!

cseteram   8년 전

tmp1과 tmp2 초기화가 안되었어요

moonsoo5522   8년 전

변수를 함수안에 선언하실 때에는 반드시 초기화를 하셔야 합니다...

메인함수도 마찬가지구요.

함수밖 전역공간에다 선언하면 초기화도 같이 되지만

함수 내부에서 선언해놓으면 별도로 초기화하지 않을 경우 변수에는 쓰레기값이 들어가있겠죠.

volta2030   8년 전

기본을 간과하고 있었군요.. 감사합니다^^

댓글을 작성하려면 로그인해야 합니다.