質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

2回答

1016閲覧

システムAとシステムBの比較

Merrifield

総合スコア31

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2020/08/31 02:09

編集2020/08/31 02:25

System A : (チケット代)15 * (回数)3 = 45
System B : (カード代)500 + (チケット代)15 * (パーセント)0.90 + (15 * 0.90) * 0.90 + (15 * 0.90 * 0.90) * 0.90 ( = 536.5849999999999)

カード代、チケット代、パーセントが与えられたとき、A>Bになるときのnを求めたいのですが、下のコードでおかしなところを教えてください。
(。

追記:システムBは切り上げです。

c

1 #include <math.h> 2int movie(int card, int ticket, double perc) { 3 4 double n; 5 double x; 6 double y = (double)card; 7 8 9 for(n = 1.0; ;n++){ 10 11 x = (double)ticket * n; 12 y = ceil( y + (double)ticket * pow(perc,n) ); 13 14 15 if(x > y)break; 16 } 17 return (int)n; 18}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ええと、浮動小数点演算が必要なのはceilの引数部分だけなので、xやyはintで構いません。

C

1int movie(int card, int ticket, double perc) 2{ 3 int y = card; 4 5 for (int n = 1;; n++) { 6 int x = ticket * n; 7 y = ceil(y + ticket * pow(perc, n)); 8 9 if (x > y) 10 return n; 11 } 12 return 0; 13}

投稿2020/08/31 02:42

編集2020/08/31 02:44
Daregada

総合スコア11990

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Merrifield

2020/08/31 03:03

ceilはdouble型を返してくるのに、int型に代入しても構わないのでしょうか?
Daregada

2020/08/31 03:12

「C言語 暗黙の型変換」でググってください。
guest

0

ベストアンサー

下のコードでおかしなところを教えてください。

浮動小数点数の演算には端数がつきまといますので、単純に>で比較すると意図しない結果となることがありえます。

入る数字の範囲を考えて判定条件を調整するか、あるいは整数演算をベースにするなどの工夫が必要です。

投稿2020/08/31 02:25

maisumakun

総合スコア145930

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問