
・プログラム開始から 2秒毎に 値を加算する
・増える値はdouble型の 1.0 とする
・呼び出した時の 経過時間に応じて 一気に加算する
・増える条件を変えた場合は、double型 の 変数に変える直前までの値を加算した後で、
その時間を記録して、そこから2秒毎に値を加算する
・増える条件変更は 10.0 と -5.0 とする
条件の変更はscanfを使って 入力する値が
0 の時は 1.0 増加状態に、
1 の時は 10.0 増加状態に
2 の時は -5.0 増加状態に
変更される
こういう条件でプログラムを作ってみました
以下のような感じです。
int a;
time_t timer;
long t1 , t2;
static bool time_sw[3];
double math = 0;
double math_s = 0;
double bai = 1.0;
t1 = ( long )time( &timer );
while(1){
printf("呼び出すものを教えてください\n");
scanf( "%d" , &a );
switch( a ){
case 0:
if( time_sw[0] == false ){
t2 = ( long )time( &timer );
math_s += bai * difftime( t2 , t1 ) / 2 ;
t1 = ( long )time( &timer );
bai = 1.0;
time_sw[0] = true;
time_sw[1] = false;
time_sw[2] = false;
}
else{
t2 = ( long )time( &timer );
math = bai * difftime( t2 , t1 ) / 2 ;
}
break;
case 1:
if( time_sw[1] == false ){
t2 = ( long )time( &timer );
math_s += bai * difftime( t2 , t1 ) / 2 ;
t1 = ( long )time( &timer );
bai = 10.0;
time_sw[0] = false;
time_sw[1] = true;
time_sw[2] = false;
}
else{
t2 = ( long )time( &timer );
math = bai * difftime( t2 , t1 ) / 2 ;
}
break;
case 2:
if( time_sw[2] == false ){
t2 = ( long )time( &timer );
math_s += bai * difftime( t2 , t1 ) / 2 ;
t1 = ( long )time( &timer );
bai = -5.0;
time_sw[0] = false;
time_sw[1] = false;
time_sw[2] = true;
}
else{
t2 = ( long )time( &timer );
math = bai * difftime( t2 , t1 ) / 2 ;
}
break;
}
printf( "t1 = %d\nt2 = %d\n\n経過時間 %6.0f\n増加数 %6.0f\n\n" , t1 , t2 , difftime( t2 , t1 ) , math_s + math );
}
ここで質問なのですが、
・このソースであってますでしょうか?
・time関数で呼び出した値を 変数timer にいれてから long型のt1、t2にキャスト変換して入れていますが、long型ではなくもっと適切な型に入れることは可能でしょうか?
可能でしたら適切な型はなんでしょうか?
後、私は時間が余りないので時間内に回答がなければ返信が来週になります。
申し訳ありません。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
> ・time関数で呼び出した値を 変数timer にいれてから long型のt1、t2にキャスト変換して入れていますが、long型ではなくもっと適切な型に入れることは可能でしょうか?
なぜ、そこでマニュアルを読もうとしないんですか。
time_t time(time_t *t);
double difftime(time_t time1, time_t time0);
プログラムの内容は、はっきり言って何がしたいかわかりません。
「2秒毎に計算」にはなっていないように見えます。
また、説明が無いので static bool time_sw[3]; の配列が何を表わしているのかわかりません。
No.1
- 回答日時:
全部ちゃんと見てませんが気が付いたとこだけ
>・このソースであってますでしょうか?
・厳密な意味でいえば 2秒ごとに加算されてませんがそれでいいんでしょうか?
数字入力した時にまとめて処理するようになっているようです
例 )例えば何も入力しなくても 6秒たったら 3 にならなくてもいいんでしょうか?
・time_sw変数の初期化が無いので場合によって動きが異なる可能性がある
>可能でしたら適切な型
使用上もキャストする必要性が無いような気がします 標準の time_t のままでいいんでは?
時間がないのでこの場を借りてお礼を申しあげます
皆様ご指摘ありがとうございます
<厳密な意味でいえば 2秒ごとに加算されてませんがそれでいいんでしょうか?
そういえばそうですね
2秒毎に勝手に表示が変わっていただけるのでしたらそういうプログラムを組みたかったのですがそんなプログラム走らなかったので数字入力したときに結果が返ってくるようにしました
・time_sw変数の初期化が無いので場合によって動きが異なる可能性がある
staticをつければ初期値はfalse になると思っていました
・なぜマニュアルを読まない
マニュアルなんて始めて聞きました
どこにあるのですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 英語 文法あっていますか? be likely to ○○ 16 2022/09/11 11:06
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
- 英語 「今日 ひさしぶりに本を読みました」を自然な英語で。 2 2022/04/14 11:01
- PHP 共通の処理をまとめる方法がわからないのでアドバイスお願いします。 1 2022/12/19 20:20
- 英語 提示した名言の文の構造について(waste one hour of time) 5 2023/05/20 15:22
- 英語 「this is the/my first time~」の文法上の制約について 1 2023/04/06 09:48
- 英語 be sorry for doingとbe sorry to have doneの意味の違いについて 2 2023/06/09 13:57
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- 英語 「it takes 期間 to do/doing」の意味やニュアンスの違いについて 1 2023/01/15 14:02
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#でログファイルにファイルパ...
-
プログラマー達は何故、プログ...
-
ディスプレイの解像度とマウス...
-
大量のデータを読み込んで表示...
-
C言語の関数のextern宣言
-
Windows Formアプリからコンソ...
-
C言語って古いですか?
-
ホワイトハッカーを目指そうか...
-
UART通信の取説で,left floati...
-
C#でTreeViewのCheckBoxのサイ...
-
逆コンパイルと逆アセンブルの...
-
c++でテンプレートのコードでわ...
-
C言語でファクト関数を使わずに...
-
コンソールアプリを作成するの...
-
[C言語]fputsとfprintfの違い
-
c言語
-
終端記号、非終端記号とは
-
int16_t の _t は何?
-
【C言語】全角文字の配列を、全...
-
C# DatagridviewにExcelシート...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
c++ cmathとmath.h
-
エクセル マクロ(A1:A10)までの...
-
プログラム開始から 2秒毎に ...
-
三辺の長さから角度を求めたい...
-
python: 直角三角形の種類を求...
-
SharedObject.getLocal()、オブ...
-
VB6でユーザー定義型がNothing...
-
エラー(型が一致しません。)...
-
VBでボタンを押すと画像をラン...
-
変な質問ですみません、n番目の...
-
TextChangeイベントが発生しない
-
Vba 配列の中の特定文字列の位...
-
#define 文
-
LRESULTとHRESULT
-
ifdefとenum
-
配列の要素番号を取得するには?
-
VB.NET の配列の要素数
-
複数の変数宣言を、for文で一気...
-
VBS 名前定義の確認→ありかなし...
-
PHP + MySQL で登録時に重複チ...
おすすめ情報