
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
Cを含め多くの言語では、「整数÷整数」は整数になります。
つまり、割り切れない時は整数値に切り捨て。3 / 2 ⇒ 1
3.0 / 2.0 ⇒ 1.5
なので、割り切れない場合に切り捨てずに実数値で答えが欲しい場合は、割る数か割られる数の少なくとも一方を実数化する必要があるので、(double)を付けます。
整数値の前に (double) と書くと実数化されるのはご存じでしょうか?
逆に実数値に (int) を付けると切り捨てで整数化されます。
No.4
- 回答日時:
ans3 も同じなんだけど
5/3 と書くと 式は整数型で 1 になりますが
5.0/3.0 と書くと 式は 倍精度浮動小数点 で 1.66666666・・・
になります。
ans5 も (7+32)/5 なら整数の 7 に
(7+32)/5.0 とか (7.0+32)/5 とか
(7+32)/(double)5 とかなら 倍精度浮動小数点の 7.8 になります。
数値のリテラルが表す型、
数値演算がどの型でどのように行われ、
どの型が返るのか(型昇進や算術型変換)
は C の基本です。
よく理解していないとたんまりバグを生むので
要注意です。
No.3
- 回答日時:
除法の計算結果が異なります
(int値) / (int値)
→ 剰余を無視して、商のint値を計算
(int値) % (int値)
→ 商を無視して、剰余のint値を計算
(int値) / (double値)
→ (double値) / (double値) に暗黙的に拡張
→ 実数には剰余の概念がないので、商のdouble値を計算
(double値) / (int値)
→ 同上
No.2
- 回答日時:
> 何故(double)の入力が必要なのですか?
実際(double)を外してみればいいです。
例えば、
#include <stdio.h>
int main(void) {
printf("%d\n", (7 + 32)/5);
return 0;
}
みたいにして。
(7 + 32)/5 の答えが7になるから。
どういう解が欲しいか、ってのは場合によるんだけど(例えば商だけが欲しい場合は上の計算結果で良い)、仮にこういう「小数点以下まで割った解が欲しい」場合、型変換とか「キャスト」と言うのを行います。
5は整数型だけど、(double)をキャストすると5.0と言うdouble型になる。
言い換えると、他の手としては、例えば、
#include <stdio.h>
int main(void) {
printf("%lf\n", (7 + 32)/(1.0 * 5));
return 0;
}
とか、
#include <stdio.h>
int main(void) {
printf("%lf\n", 1.0 * (7 + 32)/5);
return 0;
}
とか、割る方か割られる方かどっちかに1.0を掛けて計算させる、なんつー事もやります(double型である1.0を掛ければ自然とどっちかはdouble型になる)。
➜ sho215 ./a.out
7.800000
➜ sho215
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
確定申告しなかった・無申告の人をどうやって見つけるのか元国税調査官に聞いてみた
無申告の方などを対象に税務調査を行う国税局の元税務調査官さんに、どう無申告を探すのか聞いてきました。
-
28日以上、31日以下ってC言語でどう表しますか?日本語無しでお願いします。
C言語・C++・C#
-
プログラミング実行後の表示される値を答えよ #include<stdio.h> void main(
C言語・C++・C#
-
C言語のwhileを使ってプログラムを組みたいです!自分でやってみたのですが答えが合わないので教えて
C言語・C++・C#
-
4
なぜ高速フーリエ変換は画像のような単純な式なのにこちらのサイト書いてあるプログラムは長文で複雑なので
C言語・C++・C#
-
5
C言語 cmd 新規ファイルで行ってもこうなります… なぜでしょうか?
C言語・C++・C#
-
6
プログラミング実行後に表示される値を答えよ #include <stdio.h> void main
C言語・C++・C#
-
7
課題でどうしてもわからない問題があったので教えてほしいです、、 メンバ関数add_accept_st
C言語・C++・C#
-
8
C言語のバイナリファイルに関する質問
C言語・C++・C#
-
9
C言語について。
C言語・C++・C#
-
10
c言語のポインタについて numの値は変えていないのになぜ2回目のプリントで24になっているのですか
C言語・C++・C#
-
11
c言語 何をしているのかがわからない
C言語・C++・C#
-
12
このプログラミング誰か教えてください
C言語・C++・C#
-
13
このプログラミング誰か教えてくれませんか
C言語・C++・C#
-
14
C言語 ポインタ 配列
C言語・C++・C#
-
15
C言語: ポインタ
C言語・C++・C#
-
16
C pointer? or...
C言語・C++・C#
-
17
c言語の質問です。 ランダムに4桁の暗証番号を出力するプログラムを作ったのですが、4947→4973
C言語・C++・C#
-
18
C言語:数値の桁数指定についての質問です。
C言語・C++・C#
-
19
プログラミングのC言語についてですが 全く分かりません。 どなたか教えてくれないでしょうか、、?
C言語・C++・C#
-
20
至急お願いします。プログラミングの問題です。 malloc 関数を使って教えてください。 入出力例1
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
c言語のコンパイルエラー canno...
-
5
c言語でDFTのプログラムを作成...
-
6
c言語で、繰り返し文の中で、0....
-
7
DLLの作り方
-
8
C 開放してるのにエラー(doubl...
-
9
斜辺と角度て底辺と高さを出したい
-
10
C言語の型による処理速度の違い
-
11
C言語で-23乗を取り扱うには
-
12
プログラムでの数字につく”f”の...
-
13
float?数字の後にLがつくもの
-
14
至急です! マクロ定義で #defi...
-
15
C言語で内積、、、わかりません。
-
16
C言語で直角三角形の斜辺を求め...
-
17
C++で等差数列の和に関する問題...
-
18
doubleの変数にintとintの割り...
-
19
プログラミングについての質問
-
20
C言語の複素数についてです。
おすすめ情報
公式facebook
公式twitter