Nazdar chlapi chcem spravit jednoduche stopky v Cecku, ktoré by pocitali cas trvania behu nejakeho programu. Uz sa mi aj podarilo nieco nakodit ale nie je to este celkom ono. Zatial mám spravené toto:
(ten sucet a+b je len ako priklad nejakeho programu, ktoreho cas chcem merat).
#include <stdio.h>
#include <time.h>
int main (void)
{
int a=0,b=0;
double diff = 0.0;
time_t start;
time_t stop;
time(&start);
printf("Zadaj a:\n");
scanf("%d",&a);
printf("Zadaj b:\n");
scanf("%d",&b);
printf("Sucet je:%d\n",a+b);
time(&stop);
diff = difftime(stop, start);
printf("Trvalo ti to %g sekund.\n", diff);
system("PAUSE");
}
Toto v pohode funguje ale pocita to cas v sekundach. Ja by som ale potreboval aby my ten cas zobrazilo v nejakom normalnom formáte napríklad "hodina:minuta:sekunda". Neviete niekto poradit. Dakujem.
Program "Stopky" v jazyku C.
Moderátori: psichac, Moderátori
-
- Nový člen
- Príspevky: 93
- Dátum registrácie: 22 Jan 2013, 08:02
- Bydlisko: NDCA
- Vek: 33
Re: Program "Stopky" v jazyku C.
skus takto
diff zmen z doublu na int.
s = diff % 60;
m = (diff / 60) % 60;
h = diff / 3600;
printf("Trvalo ti to %02d:%02d:%02d.\n", h, m, s );
diff zmen z doublu na int.
s = diff % 60;
m = (diff / 60) % 60;
h = diff / 3600;
printf("Trvalo ti to %02d:%02d:%02d.\n", h, m, s );
0
-
- Nový člen
- Príspevky: 93
- Dátum registrácie: 22 Jan 2013, 08:02
- Bydlisko: NDCA
- Vek: 33
Re: Program "Stopky" v jazyku C.
Super diki tak nejak by to mohlo byt. A ja som nad tým štyri hodiny špekuloval a pritom tak jednoduche na tri riadky.
0
-
- Nový člen
- Príspevky: 93
- Dátum registrácie: 22 Jan 2013, 08:02
- Bydlisko: NDCA
- Vek: 33
Re: Program "Stopky" v jazyku C.
Ešte by som potreboval jednu maličkosť. Potrebujem spraviť funkciu, ktorá bude vedieť počítať počet stlačení šípiek na klávesnici.
Diki.
Diki.
0
-
- Nový člen
- Príspevky: 93
- Dátum registrácie: 22 Jan 2013, 08:02
- Bydlisko: NDCA
- Vek: 33
Re: Program "Stopky" v jazyku C.
Neviete niekto ako na to??
Skusal som takto:
int pocitadlo;
clear_keybuf();
while(!keypressed());
if(key[KEY_UP]||key[KEY_DOWN]||key[KEY_LEFT]||key[KEY_RIGHT])
{
pocitadlo++;
}
Ale jaksi to nerobi to co potrebujem.
Skusal som takto:
int pocitadlo;
clear_keybuf();
while(!keypressed());
if(key[KEY_UP]||key[KEY_DOWN]||key[KEY_LEFT]||key[KEY_RIGHT])
{
pocitadlo++;
}
Ale jaksi to nerobi to co potrebujem.
0
Re: Program "Stopky" v jazyku C.
skus toto, funkcia getch potiahne jeden znak necaka na enter, problem je v tom ze sipky sa mi vracali ako kod 3 znakov 27 91 66-68, 66 sipka hore 67 sipka dole atd... preto sa tam v kaskade nacitava ten znak. snad to bude fungovat, skusal som to na linuxe, zadaval som z konzoly... ked nie tak si vo while skus vypisovat jeden nacitany znak, ake hodnoty ti to bude vracat a podla toho to uprav.
Kód: Vybrať všetko
#include <termios.h>
#include <stdio.h>
static struct termios old, new;
/* Initialize new terminal i/o settings */
void initTermios(int echo)
{
tcgetattr(0, &old); /* grab old terminal i/o settings */
new = old; /* make new settings same as old settings */
new.c_lflag &= ~ICANON; /* disable buffered i/o */
new.c_lflag &= echo ? ECHO : ~ECHO; /* set echo mode */
tcsetattr(0, TCSANOW, &new); /* use these new terminal i/o settings now */
}
/* Restore old terminal i/o settings */
void resetTermios(void)
{
tcsetattr(0, TCSANOW, &old);
}
/* Read 1 character - echo defines echo mode */
char getch_(int echo)
{
char ch;
initTermios(echo);
ch = getchar();
resetTermios();
return ch;
}
/* Read 1 character without echo */
char getch(void)
{
return getch_(0);
}
/* Read 1 character with echo */
char getche(void)
{
return getch_(1);
}
/* Let's test it out */
int main(void) {
unsigned char c;
int cnt = 0;
while( 1 )
{
if( getch() == 27 )
if( getch() == 91 )
{
c = getch();
if( c >= 65 && c <= 68 )
{
cnt++;
continue;
}
}
break;
}
printf( "%d\n", cnt );
return 0;
}
0
-
- Podobné témy
- Odpovedí
- Zobrazení
- Posledný príspevok