volta2030   10달 전

소스코드입니다.

#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   10달 전

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

volta2030   10달 전

첨부 했습니다!

jhpark0515   10달 전

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

teram   10달 전

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

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

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

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

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

volta2030   10달 전

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

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