ページ 11

time関数について・・・

Posted: 2014年3月17日(月) 11:08
by kkjq
初めまして,現在C言語を一から勉強しているkkjqといいます.
この度,C言語を学ぶに当たって”●でも分かるプログラミング”というサイトを参考にしているのですが試作プログラムがどうもうまく作れません.
C言語第1部のWhile文の講座ですが,時間関数time()を使い数を数えていきながらその秒数を計るプログラムです.

#include <stdio.h>
#include <time.h> //1970年1月1日0時0分からの秒数

void main()
{
int i=1;
time_t t1,t2;

time(&t1);
while(i<=5000){
printf("%d ",i++);
}
time(&t2);
printf("それぞれ %ld,%ld\n",t1,t2);
printf("かかった秒数%ld",t2-t1);
return ;
}

「現在わかっている点」
time()の引数t1,t2どちらかだけの場合はきちんと結果が表示されます(両方をプログラムに入れると片方の秒数が0になります)
表示される秒数(t1 or t2)は正しいことが確認できています.

※学習環境はVisualStudio2008を使っています.

原因が分からずどうしても気持ち悪いです.アドバイスお願いします

Re: time関数について・・・

Posted: 2014年3月17日(月) 12:35
by Ryo
%ldを、%lld(Lが二つ)にしてみてください。

Re: time関数について・・・

Posted: 2014年3月17日(月) 14:45
by box
提示されているコードは、本当に当該の問題が発生するものですか?
time()の引数に全角文字を含んでいて、コンパイルできないはずです。
当該の問題が発生するコードを
そのまま
コピペしてください。

Re: time関数について・・・

Posted: 2014年3月17日(月) 14:48
by jqkk
>boxさん
&を(このサイトで)半角で入力すると&になって分からなくなるかと思い,その部分だけ変えました
確かに一部に全角あるとタイプミスかと思われても仕方ないかとおもいます・・・

>Ryoさん
ご指摘いただいた方法で無事解決できました

二方ありがとうございました
未熟者ゆえまた何かしらのご機会にお力添えいただくかもしれませんがよろしくお願いします