왜 WA에요 선배?

jugol Reply 8 years 48 weeks ago
#include <stdio.h> #include <algorithm> #include <string.h> #include <map> #include <vector> FILE *in = fopen("input.txt","r"); FILE *out = fopen("output.txt","w"); /* FILE *in = stdin; FILE *out = stdout; */ int n,m; int main() { int i,j,k; int cnt=0; double h,m,s,v=0; int hh=0,mm=0,ss=0; char dummy; double dis=0; int flag=0; for(;;) { if(fscanf(in,"%lf:%lf:%lf",&h,&m,&s)==EOF) break; if(fscanf(in,"%c",&dummy)==EOF) break; if(dummy==EOF) { break; } if(dummy=='\n') { dis+=(h-hh)*v+(m-mm)*v/60+(s-ss)*v/3600; if((int)h/10==0) { fprintf(out,"0"); } fprintf(out,"%d:",(int)h); if((int)m/10==0) { fprintf(out,"0"); } fprintf(out,"%d:",(int)m); if((int)s/10==0) { fprintf(out,"0"); } fprintf(out,"%d",(int)s); fprintf(out," %.2lf km\n",dis); } else { if(dis!=0)dis+=(h-hh)*v+(m-mm)*v/60+(s-ss)*v/3600; fscanf(in,"%lf",&v); } flag=1; hh=h;mm=m;ss=s; } return 0; } 저에게 안되는 예제를 던져주시죠 은기선밴님>_<뿌잉꾸잉 데헿
happilee12 Reply 8 years 48 weeks ago
거의.....성정체성혼란?
cjmp1 Reply 8 years 48 weeks ago
상당히 저도 어이가없지만지금.. dummy가 문제에요.. scanf("%c",&dummy); 해서 \n인지, 아닌지 확인하지말고, getchar을 사용해서 공백이면 속도 입력받고 아니면 받지 않고 하니까 되네요.. 그리구 다른거로는 h,m,s는 정수입니다. double 형 말구 int 형을 사용하셔야 되구여, dis+=(h-hh)*v+(m-mm)*v/60+(s-ss)*v/3600 에서 dis가 double형을 요구하기 때문에 계산식에서 v/60같은 경우 (int)/(int)이므로 double 형이아닙니다. 따라서 dis+=(h-hh)*v+(m-mm)*v/60.0+(s-ss)*v/3600.0 으로 해주셔야 double형으로 들어갑니다.
pichulia Reply 8 years 48 weeks ago
뭐..나도 h m s 를 double로 해서 풀어서 별로 할말은 없지만.. 굳이 안되는 예제를 던져보면 이런게 있으려나 00:00:01 50 00:00:02