• 締切済み

if文の問題で…

[問題]通話時間(秒単位)を入力し,通話料を計算し出力するプログラムを書け.なお,通話料は,以下のようにして計算するものとする. 通話時間≦基本通話時間( 1151 秒)  基本料金:882円 基本通話時間を 183 秒超える毎に 9 円ずつ加算 この問題がよくわかりません。一応自分で組んでみて実行してみたのですがどうやら出てくる答えが違うようです。(因みにC言語で書きました。)どなたか教えてくれないでしょうか??

みんなの回答

  • high4
  • ベストアンサー率0% (0/0)
回答No.5

「基本通話時間を 183 秒超える毎に 9 円ずつ加算」の表現が不思議ですよね。 このままだと、(1151 + 1)~(1151+183) は基本料金のままになります。業界の常識は知らないのですが、世間一般は、基本通話時間を1秒でも越えたら加算されると考えます。 プログラムは、 前者なら  sec <= 1151 ? 882 : (sec - 1151)/183 * 9 + 882; 後者なら sec <= 1151 ? 882 : ((sec - 1151 - 1)/183 + 1) * 9 + 882; です。 後者は、この種の計算のよくあるパターンです。

全文を見る
すると、全ての回答が全文表示されます。
  • tuyo1980
  • ベストアンサー率0% (0/2)
回答No.4

#include(stdio.h) void main(void) { int p,answer; printf("通話時間(秒単位)を入力\n") scanf("%d",&p); if(p <= 1151) { printf("基本料金は882円\n") } else { answer = ((p/183)*9)+882 printf("基本料金は%d円\n",answer) } } これで駄目かな。

全文を見る
すると、全ての回答が全文表示されます。
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.3

★アドバイス ・回答者 No.2 さんの if 判定を反転して、基本通話時間を超えた分を money に  加算する方法です。このため、最初 money には基本料金の 882 をセットしておくこと。 サンプル: int telephone = 12345; ←通話時間 int money = 882; ←基本料を最初にセットしておく if ( telephone > 1151 ){ ←基本通話時間を越えたら  money += ((telephone - 1151) / 183) * 9; ←183 秒毎に 9 円ずつ加算 } その他: ・基本通話時間を越えたら、基本通話時間(1151)を引いた通話時間を 183 秒で割って  183 秒のブロックがいくつあるのか求めます。求めた数に 9 円をかければ基本通話時間を  越えた金額が求まります。これを基本料金の money(882) に加算すればよいのです。 ・以上。参考に!

全文を見る
すると、全ての回答が全文表示されます。
  • marori3
  • ベストアンサー率25% (23/91)
回答No.2

// 通話時間はtelltime // 料金はmoney if(telltime<=1151){ money = 882; } else{ money = ((telltime-1151)/183)*9+882; } でどうでしょう?

全文を見る
すると、全ての回答が全文表示されます。
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.1

★補足要求します。 >一応自分で組んでみて実行してみたのですがどうやら出てくる答えが違うようです。  ↑ならそのソースを補足に貼り付けてみて下さい。 ・以上。待っています。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • IF関数を使って、通話料を計算したいのですが。

    エクセル初心者です。 通話料が3分(表示は0:03:00)以内は8円、3分1秒~6分は16円 のように、3分ごとに8円ずつ課金が上がります。 通話時間の表示から簡単に通話料を計算する方法を教えていただけますでしょうか。 ちなみに、1番大きい通話時間は1時間7分11秒(1:07:11)でした。 よろしくお願いします。

  • 通信速度の問題

    以下の問題の答えがなくて困っています。 通信速度 9600bps 伝送効率 80% データ  1Mバイト 電話慮金 30秒30円 1.実効通信速度を1秒あたりのバイト数で求めよ。 2.ファイル転送時間を秒単位で求めよ。 3.電話料金を求めよ。 1.9600×0.8=7680   7680÷8=960 960バイト 2.1000000÷960=1042 1042秒 3.1042÷30=34.7   35×30=1050 1050円 あっていますか?

  • c言語の関数について

    サービス1 基本料金3,000円 利用時間1時間当たりの追加料金 1,200円 サービス2 基本料金5,000円 利用時間1時間当たりの追加料金 600円 サービス3 基本料金7,000円 利用時間1時間当たりの追加料金 300円 利用時間xを受け取るとサービス1の一ヶ月間の料金を計算するcharge1関数を作成。 さらにサービス2の一ヶ月間の料金を計算するcharge2関数と、サービス3の料金を計算するcharge3関数もそれぞれ作成。 そして3つのサービス各料金を、使用時間1時間の場合から10時間の場合まで1時間単位で計算し、出力するプログラムを関数charge1、charge2、charge3を利用して作成。 関数の作り方がわからないので、例解をお願いします。

  • 情報処理の問題ですが

    情報処理の問題ですがどなたか解き方を教えて頂けますでしょうか? 宜しくお願い致します。 問題 8000万個の命令を実行するプログラムを60MIPSで実行した場合に 予想される処理時間は何秒か(小数点第3位を四捨五入する) ここで プロセッサの使用率は75%としてオペレーティングシステムのオーバーヘッドは考えないものとする。なお、次の計算式を参考にするとよい (1)1秒間に実行できる命令数=MIPS値×使用率 (2)プログラム処理時間=プログラム命令数/1秒間に実行できる命令数 (3)MIPS値=1秒間に実行できる命令数を百万の単位で示したもの

  • ポアソン分布を用いた期待値の問題について

    こんにちは。どうしても分からない問題があったので質問させていただきます。 問題は一か月に平均10回電話をかける人が一番得をするパケットプランを選べという問題です。 具体的なプランは A :通話時間に関わらず月10通話までなら基本料金900円、11通話以上ならば1通話につき100円 B:基本料金200円で無料通話なし、通話時間にかかわらず1通話につき70円 C:通話回数、通話時間によらず基本料金1000円の定額制かけ放題 の三つです。 問題には「必要ならば10^10×exp(-10)/10!=0.125を用いろ」とだけあります。 期待値を求めて一番安いものを選択すればいいのだとは思うのですが、類似した問題が見当たらず困っています。 どの参考書もポアソン分布を用いた問題だと 「月2回電話する人が3回以上電話をする確率を求めよ」みたいな、余事象を使う問題しかありませんでした。 さらに、問題にあるように使える値は「10^10×exp(-10)/10!=0.125」だけなので、こうした余事象を使うにしてもその他の値が分からないので、結局どうしたらいいのか分かりません。 よろしくお願いいたします。

  • プログラム?の問題なのですが・・・

    サービス料と消費税をとる飲食店がある。サービス料は飲食品価格の10%、消費税はサービス料と飲食品価格の和の5%とする。飲食総額は、飲食品価格とサービス料と消費税である。 問題 1.飲食品価格がscanf文により整数値(単位は円)で入力されるとして、飲食総額(浮動少数点数、単位は円で円未満は切り捨て)を計算するフローチャートとそのプログラムを作成せよ。出力桁数は6桁(以下同じ)とする。 2.さらに、支払い額がscanf文で整数値(単位は円)で入力されるとして、その釣り銭を計算するプログラムを作成せよ。 3.飲食品価格が7000円を超えるときには、地方特別消費税として、さらにサービス料と飲食品価格の和の5%がが加算されるときのプログラムを作成せよ。ただし、入力方法は先のものと同じとする。 画像にして貼ります。 どなたか解る方いらっしゃれば解答をお願い致します

  • Excelの計算式を教えてください。

    Excelで電話料金の計算式を作っています。 A1に時間 B1に分 C1に秒 が入力されています。 電話で通話した時間です。 (これは一ヶ月の通話時間の合計とかではなくて、1通話の通話時間です。) このデータをもとに電話料金を計算したくて 色々試しましたがうまくいきません。 電話料金は3分8円で計算したいと思います。 よろしくお願いします。

  • 関数の計算式を教えてください。

    今晩は。お世話になります。 pure-cocoaと申します。 カラオケ部屋使用料の計算方法についてお尋ねいたしたくよろしくお願いを申し上げます。 下記カラオケ部屋の使用料があるとして使用開始時間と退出時間を入れる事により 使用料が算出できる計算式(関数)を教えてください。 08:30-17:15迄(平常料金) \1,000/最初の1時間(以降30分単位で500円ずつ加算) 17:15-22:15迄 (夜間料金) \1,500/最初の1時間(以降30分単位で750円ずつ加算) 22:15-04:45迄 (深夜料金) \2,000/最初の1時間(以降30分単位で1000円ずつ加算) 04:45-08:30迄 (早朝料金)  \1,500/最初の1時間(以降30分単位で750円ずつ加算) 使用料金は30分ごとに区分して異なる料金体系に時間がまたがった場合は高い方の料金を適用します。 例 a) 07:30-09:00の場合:07:30-08:30の1時間分早朝料金と08:30-09:00の30分平常料金の合算 b)08:20-09:20の場合:08:20-08:50の30分を早朝料金として計算し08:50-09:20の30分を平常料金として合算する c) 16:30-17:45の場合:16:30-17:00の30分を平常料金として計算し17:00-17:45の45分を一時間分の夜間料金として合算する d) 21:45-23:00の場合:21:45-22:15の30分を夜間料金として計算し22:15-23:00の45分の一時間分を深夜料金として合算する 以上ですがご教示いただければ幸甚です。 よろしくお願いを申し上げます。

  • 中学入試問題(算数)が解けなくて困っています

    私立中学の過去問題です。 問題文 A社の携帯電話通話料金は1分あたり60円で、ひと月の通話料金の合計が60分以上では定額3600円です。B社の携帯電話通話料金は1分40円で、ひと月の通話料金の合計が120分以上では定額4800円です。 (1)A社とB社のひと月あたりの金額が同じになるのは、通話時間の  合計が何分のときですか。 (2)さらに、A社では通話時間が120分を越えた場合、定額の3600円に  1分あたり60円の通話料が加算されるとします。このとき、B社の  ひと月あたりの金額を上回るのは、通話時間の合計が何分より長   く、何分より短い場合ですか。 回答 (1)90分 (2)90分より長く140分より短い とき方が全くわかりません。詳しく教えていただけたらと思います。

  • 1秒は何ミリ秒とか、単位変換の問題が苦手です。

    今ITパスポートなどの情報処理技術者試験などの勉強をしているのですが、 1秒は何ミリ秒とか、3,600,000ミリ秒は何時間とかの単位変換の問題が苦手です。 また、4,096バイトは何kバイトとかの単位変換の問題とかも苦手です。 どのようにしたら、早く正確に解くことできるようになるでしょうか? 答え間違っていたり、答えが正解してても時間がかかってしまったりします。 計算方法や早く正確に解く方法など、教えていただけないでしょうか? よろしくお願いします。