
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も見ています
-
教えて!gooグレードポイントがdポイントに変わります!
dアカウント連携を行っていただくと、グレードに応じて「dポイント」が進呈されるようになります。
-
28日以上、31日以下ってC言語でどう表しますか?日本語無しでお願いします。
C言語・C++・C#
-
プログラミング実行後の表示される値を答えよ #include<stdio.h> void main(
C言語・C++・C#
-
プログラミング実行後に表示される値を答えよ #include <stdio.h> void main
C言語・C++・C#
-
4
C言語について。
C言語・C++・C#
-
5
なぜ高速フーリエ変換は画像のような単純な式なのにこちらのサイト書いてあるプログラムは長文で複雑なので
C言語・C++・C#
-
6
c言語 何をしているのかがわからない
C言語・C++・C#
-
7
c言語のポインタについて numの値は変えていないのになぜ2回目のプリントで24になっているのですか
C言語・C++・C#
-
8
C言語 cmd 新規ファイルで行ってもこうなります… なぜでしょうか?
C言語・C++・C#
-
9
C言語 ポインタ 配列
C言語・C++・C#
-
10
課題でどうしてもわからない問題があったので教えてほしいです、、 メンバ関数add_accept_st
C言語・C++・C#
-
11
C pointer? or...
C言語・C++・C#
-
12
このプログラミング誰か教えてください
C言語・C++・C#
-
13
このプログラミング誰か教えてくれませんか
C言語・C++・C#
-
14
C言語: ポインタ
C言語・C++・C#
-
15
教えてください
C言語・C++・C#
-
16
c言語の質問です。 ランダムに4桁の暗証番号を出力するプログラムを作ったのですが、4947→4973
C言語・C++・C#
-
17
C言語のコンパイルエラーについて
C言語・C++・C#
-
18
C言語:数値の桁数指定についての質問です。
C言語・C++・C#
-
19
プログラミングペーパーテスト 次の問題の実行結果を答えろ #include int x[ ] = {
C言語・C++・C#
-
20
C言語のバイナリファイルに関する質問
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
C言語を実行すると-infが出てき...
-
5
正規分布の乱数生成
-
6
C言語の課題で悩んでいます
-
7
C 開放してるのにエラー(doubl...
-
8
c言語で、繰り返し文の中で、0....
-
9
C言語でポインタを用いた平均,...
-
10
プログラムでの数字につく”f”の...
-
11
C言語で-23乗を取り扱うには
-
12
C言語のプログラムで#include<m...
-
13
方程式を2分法を用いて解くプロ...
-
14
ガウスの消去法を用いたC言語...
-
15
int とdoubleの比較
-
16
2分法で方程式の複数の解を自...
-
17
long doubleの表示方法
-
18
至急です! マクロ定義で #defi...
-
19
c言語について 下記の計算結果...
-
20
指数形式で入力するには
おすすめ情報
公式facebook
公式twitter