daniel88ek Napisano Styczeń 19, 2009 Zgłoś Share Napisano Styczeń 19, 2009 Witam.mam problem.ten programik źle wskazuje mi sekundy.o jedną sekundę za wcześnie.i nie wiem jak mam to zrobić aby działało prawidłowo. #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <math.h> #include <dos.h> int midx,midy; int main(void) { struct time t; struct date d; int i; /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int mVal; int stangle = 0, endangle = 360; int radius = 150; /* initialize graphics, local variables */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ } midx = getmaxx() / 2; midy = getmaxy() / 2; setcolor(getmaxcolor()); /* draw ellipse */ ellipse(midx, midy,stangle,endangle,radius,radius); for(i=0;i<12;i++) /*rysuje 12 elips jako wskażniki godzin */ fillellipse(midx-(int)radius*sin(i*M_PI/6),midy-(int)radius*cos(i*M_PI/6), radius/10,radius/10); do{ gettime(&t); getdate(&d); mVal=t.ti_hour*60+t.ti_min; setcolor(RED); line(midx,midy,midx-(int)(0.45*radius*sin(-mVal*M_PI/360)),midy-(int)(0.45*radius*cos(-mVal*M_PI/360))); //wskazowki godzin setcolor(GREEN); line(midx,midy,midx-(int)(0.85*radius*sin(-t.ti_min*M_PI/30)),midy-(int)(0.85*radius*cos(-t.ti_min*M_PI/30))); //wskazowki min setcolor(BLUE); line(midx,midy,midx-(int)(0.85*radius*sin(-t.ti_sec*M_PI/30)),midy-(int)(0.85*radius*cos(-t.ti_sec*M_PI/30))); //wskazowki sec - tu wlasnie problem. sleep(1); setcolor(BLACK); line(midx,midy,midx-(int)(0.45*radius*sin(-mVal*M_PI/360)),midy-(int)(0.45*radius*cos(-mVal*M_PI/360))); line(midx,midy,midx-(int)(0.85*radius*sin(-t.ti_min*M_PI/30)),midy-(int)(0.85*radius*cos(-t.ti_min*M_PI/30))); line(midx,midy,midx-(int)(0.85*radius*sin(-t.ti_sec*M_PI/30)),midy-(int)(0.85*radius*cos(-t.ti_sec*M_PI/30))); gotoxy(1,1); printf("%d %d %d",d.da_day,d.da_mon,d.da_year); gotoxy(73,1); printf("%2d %02d %02d",t.ti_hour,t.ti_min,t.ti_sec); } while(!kbhit()); /* clean up */ getch(); closegraph(); return 0; } Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.