以下の問題が解けません。
わかる方、教えていただけないでしょうか?
・問題
int型の変数i,j,k,m,n,double型の変数a,bに,下に示す式の結果を代入し結果を
i = ...
a = ...
j = ...
b = ...
k = ...
m = ...
n = ...
と出力せよ(int型の変数は%d,double型の変数は%lfで変換すること)。プログラムコードの下にコメントとして,各演算結果がそのようになる理由を書き入れて提出せよ。とくにk,m,nに対応する式は,ある特定の意味を持っている。それぞれどのような意味を持つ式であるかということに言及すること。
i = 11/17*8 + 27/13;
a = 11/17*8 + 27/13;
j = 11.0/17*8 + 27/13;
b = 11.0/17*8 + 27/13;
k = 281 - 281/47*47;
m = 263.0/47+0.5;
n = 293.0/47+0.5;
No.2ベストアンサー
- 回答日時:
// Test1.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//
#include "stdio.h"
int main(int argc, char* argv[])
{
int i, j, k, m, n;
double a, b;
i = 11 / 17 * 8 + 27 / 13;
printf("i = %d\n", i);
// 11 / 17 は除数・被除数とも整数であるから
// 整数の範囲で計算が行われ、答えは0である
// 27 / 13も同様に答えは2である
// 従って, 11 / 17 * 8 + 27 / 13の式の値は2である
// 2がそのままintに代入されiは2となる
a = 11 / 17 * 8 + 27 / 13;
printf("a = %lf\n", a);
// 11 / 17 は0である
// 27 / 13も同様に答えは2である
// どちらも理由はiの場合を参照のこと
// 従って, 11 / 17 * 8 + 27 / 13の式の値は2である
// 2がdoubleに代入されaの値は2.0となる
j = 11.0 / 17 * 8 + 27 / 13;
printf("j = %d\n", j);
// 11 / 17 は除数・被除数の片方が浮動小数点なので
// 浮動小数点で計算が行われ、答えは0.647...である
// 0.647.... * 8 の場合も乗数・被乗数の片方が浮動小数点であるから
// 浮動小数点演算が行われる。5.176...となる
// 27 / 13の答えは2である(理由はaの場合を参照のこと)
// 従って, 11 / 17 * 8 + 27 / 13の式の値は7.176...である
// 7.176...が整数に代入される際小数点以下は切り捨てられ
// jの値は7となる
b = 11.0 / 17 * 8 + 27 / 13;
printf("b = %lf\n", b);
// 11.0 / 17 * 8は5.176...である
// (理由はjの場合を参照のこと)
// 27 / 13の答えは2である(理由はaの場合を参照のこと)
// 従って, 11 / 17 * 8 + 27 / 13の式の値は7.176...である
// 7.176...がそのままdoubleに代入される
k = 281 - 281 / 47 * 47;
printf("k = %d\n", k);
// 281 / 47は5となる
// 除数・被除数とも整数であるためである
// 5 * 47は235である
// よってkの値は46である
m = 263.0 / 47 + 0.5;
printf("m = %d\n", m);
// 263.0 / 47 は5.59....である
// これに0.5を加えるので263.0 / 47 + 0.5は6.09...となる
// mはintなので小数点以下が切り捨てられ6が代入される
// 5.59をいわゆる"四捨五入"した結果になっている
// 0.5を加えてから切り捨てる技法は"四捨五入"の算法として
// 良く用いられる
// これは、一般によく知られた"四捨五入"の定義に一致するが
// いわゆるJIS丸めとは異なることに注意を払う必要がある
n = 293.0 / 47 + 0.5;
// 293.0 / 47 は6.23....である
// これに0.5を加えるので293.0 / 47 + 0.5は6.79...となる
// nはintなので小数点以下が切り捨てられ6が代入される
// 6.23を四捨五入している
return 0;
}
No.5
- 回答日時:
> 下に示す式の結果を代入し
「式」とは、
> i = 11/17*8 + 27/13;
等の代入式のことでしょうか? だとすると、これをどこに代入するのでしょうか?
ちなみに、副作用完了点の間で同じ変数を複数回更新しようとした場合の動作は未定義ですので、
i = (i = 11/17*8 + 27/13);
とはできません。
temp = (i = 11/17*8 + 27/13);
i = temp;
なら可能です。
> double型の変数は%lfで変換すること
ということはC99ですね?
> 出力せよ
どこに出力するのでしょうか?
> k,m,nに対応する式は
対応するとは?
No.1
- 回答日時:
他の「課題」の関連からすると、
int i;
i = 11/17*8 + 27/13;
printf("i = %d", i);
のようなことをしろって意味だと思うけど、「課題」製作者の意図がはっきりとわからないから、
ここで聞くよりも「課題」製作者にはっきりと「わからない」と言って説明してもらうべきだと思う。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでダブルコーテーション入り...
-
エラーの意味は? Lvalue req...
-
processing エラーで、 "cannot...
-
EXCEL/VBA 変数の値をクリップ...
-
Variant型で宣言してるのにEmpt...
-
C言語 アロー演算子について質...
-
jsp~jspにhiddenを使って変数...
-
[VBS]変数を定数に変換する方法...
-
C言語 列挙型(enum型)変数について
-
i++と++i ってどう違うのですか?
-
datagridviewに行...
-
VBA 1行で複数の代入を行った...
-
変数にオフセットが付いている...
-
VB 2008のSQL文でスペースを削...
-
計算プログラムにおける無限大...
-
ASP+SQLにてSessionがNullになる
-
コマンド実行結果を変数に代入...
-
複数の代入オペレーターオーバ...
-
複数の演算子を選択する場合の処理
-
VB6.0 DataGridでのfirstRowの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでダブルコーテーション入り...
-
EXCEL/VBA 変数の値をクリップ...
-
エラーの意味は? Lvalue req...
-
jsp~jspにhiddenを使って変数...
-
Variant型で宣言してるのにEmpt...
-
[VBS]変数を定数に変換する方法...
-
テキストボックスの値を変数に...
-
processing エラーで、 "cannot...
-
整数xxxが大き過ぎますというエ...
-
【VBA】複合代入演算子
-
JavaScriptをURLから直接実行し...
-
VB6.0での条件文にある#の意味
-
だれがとけるの?
-
インクリメント演算子の前置(+...
-
プログラミングで変数と関数の...
-
datagridviewに行...
-
C言語 列挙型(enum型)変数について
-
verilog HDLの[=]と[<=]の使い分け
-
「%」を使って、偶数か奇数かを...
-
i++と++i ってどう違うのですか?
おすすめ情報