天国にいけるC言語入門 シーズン1 パソコン超初心者がゼロから東方風シューティングをつくる編 ver.0.4.15.789 RELIEF
すこしだけ実際にソーラーたちがどのように問題を解いているのか その様子をのぞいてみましょう。 その8
すこしだけ実際にソーラーたちがどのように問題を解いているのか その様子をのぞいてみましょう。 その8
すこしだけ実際にソーラーたちがどのように問題を解いているのか その様子をのぞいてみましょう。 その8
ソーラー 「よーし、
//
計算式の1部分に小数点以下を含む数値
つまり
実数
や
実数を格納している変数
を含んでいたら
式の計算結果が
aが1.05なので
10000*a=10500
などのように
整数値となるようにみえても
実際は
これらの式の計算結果は実数値となっており
その計算結果をprintf出力表示するには
%d出力変換指定子でなく
%f出力変換指定子をつかいます
//
この具体例を
もっといろいろ
プログラムを構成して
詳しく観察していきましょうか。」
ぐっジョブC 「ごーごー(^^)/ 」
ぐっどワークC 「ソーラー、その調子、その調子(^^)/ 」
ソーラー「まずは
このプログラムです。
#include <stdio.h>
int main(void)
{
printf("あなたの預金額はただいま%d円です。\n",10000*1.5);
return 0;
}
ソーラー 「コンパイルっ。」
プログラムの実行結果
Visual Studioの場合
EAZY IDECの場合
あなたの預金額はただいま0円です
続行するには何かキーを押してください・・・_
ソーラー
「やっぱり
10000*1.5の計算結果は
実数値1.5が式中にふくまれているため
10000*1.5の計算結果は実数値となっているようです。
%d出力変換指定子ではうまく結果が表示されないみたいだね
あなたの預金額はただいま0円です
か・・・」
ぐっジョブC 「ごーごー(^^)/ 」
ソーラー
「では
次は
今のプログラムの
%d出力変換指定子を
%f出力変換指定子
に
変えてコンパイルしてみましょう。
#include <stdio.h>
int main(void)
{
printf("あなたの預金額はただいま%f円です。\n",10000*1.5);
return 0;
}
ソーラー 「コンパイルっ。」
プログラムの実行結果
Visual Studioの場合
EAZY IDECの場合
あなたの預金額はただいま15000.000000円です
続行するには何かキーを押してください・・・_
ソーラー 「普通に
あなたの預金額はただいま15000.000000円です
がprintf出力表示されましたね。
大成功です
実数値をprintf出力表示するのに
%f出力変換指定子をもちいたので
うまく
計算結果がprintf出力表示されたのですね。
いつもどおり小数点以下は6桁表示となっています。」
ぐっどワークC 「もっと もっと \(^^)/」
ソーラー 「では
次は
実数値を格納した変数を計算式中につかってみましょう。
まず
float a;
と変数宣言し
作製されたfloat型の変数aに
1.5を代入します
そして
10000*a
を行い
計算結果を%d出力変換指定子を用いて
printf出力表示してみます。
#include <stdio.h>
int main(void)
{
float a;
a=1.5;
printf("あなたの預金額はただいま%d円です。\n",10000*a);
return 0;
}
ソーラー 「コンパイルっ。」
プログラムの実行結果
Visual Studioの場合
EAZY IDECの場合
あなたの預金額はただいま0円です
続行するには何かキーを押してください・・・_
ソーラー 「おおっ貴重なデータが取れたかも(^^)/
ていうか
やっぱり
正しく計算結果が表示されません
あなたの預金額はただいま0円です。
0円
0か・・・・・
いつものように
ど派手に-564783901円とかでてこないね・・・」
☆ ☆ ☆
おまけ
10000*aの部分を
1.5777777777に切り替えるとどのような結果が表示されるかな?
#include <stdio.h>
int main(void)
{
printf("あなたの預金額はただいま%d円です。\n", 1.5777777777);
return 0;
}
プログラムの実行結果
あなたの預金額はただいま-382125151円です。
C:\Users\solar\source\repos\Project2\Debug\Project2.exe (プロセス 2595768) は、コード 0 で終了しました。
このウィンドウを閉じるには、任意のキーを押してください...
と
派手に数値が
表示されます
☆ ☆ ☆
ぐっどワークC 「もっと もっと \(^^)/ 」
ぐっジョブC 「もっと もっと \(^^)/ 」
ソーラー 「ふふふふふふふふふふふ」
ぐっジョブC 「どうしたのソーラー?」
ソーラー 「ふふふふふ
みなさんは碁をうったことがおありでしょうか?
だってこれではまるで
コンピューターと碁をうっているみたいです。
こちらがa=1.5と碁石をおくと
コンピュータは0と碁石をうち返してくる。
このやりとりを繰り返しているうちに
コンピューターの碁石をうち返してくる規則性が
みぬけるかもしれないとおもうと
コンピューターと遊んでいるみたいで。
ふふふふふふふ。」
ぐっどワークC 「もうっ聡子ったら・・・」
ソーラー 「ではでは
今度は
float a;
と変数宣言した後
作製された
変数aに1.5を代入し
10000*aの計算結果を
%f出力変換指定子をもちいてprintf出力表示してみます。
#include <stdio.h>
int main(void)
{
float a;
a=1.5;
printf("あなたの預金額はただいま%f円です。\n",10000*a);
return 0;
}
ソーラー 「コンパイルっ。」
プログラムの実行結果
Visual Studioの場合
EAZY IDECの場合
あなたの預金額はただいま15000.000000円です
続行するには何かキーを押してください・・・_
ソーラー「やはり
%f出力変換指定子をもちいた場合は10000*aの計算結果は
正しくprintf出力表示されました。
10000*aは実数値となっているのですね。
実数値を%f出力変換指定子をもちいて
printf出力表示したときの
小数点以下6桁表示も健在ですね。
👇
//
計算式の1部分に小数点以下を含む数値
つまり
実数や
実数を格納している変数を含んでいたら
たとえば
aが1.05で
式の計算結果が
10000*a=10500
などのように
整数値となるようにみえても
実際は
この式10000*aの計算結果は実数値となっており
その計算結果をprintf出力表示するには
%d出力変換指定子でなく
%f出力変換指定子をつかいます
//
👆
このことがなりたっているのが確認できるね。」
solarplexuss
「それにしても
話はちょっとかわるけど
なぜか整数値を%f出力変換指定子を用いて
printf出力表示すると
0.000000
が表示されますね。
みなさんお忘れかもしれないので
たとえば
整数値1を
%f出力変換指定子を用いて
printf出力表示してみましょう。」
#include <stdio.h>
int main(void)
{
printf("あなたの預金額はただいま%f円です。\n",1);
return 0;
}
solarplexuss「コンパイルっ。」
プログラムの実行結果
あなたの預金額はただいま0.000000円です
続行するには何かキーを押してください・・・_
solarplexuss
「う~ん、やっぱり そうか・・・・・
そして
今度は
実数値1.5を
%d出力変換指定子を用いて
printf出力表示してみましょう。
#include <stdio.h>
int main(void)
{
printf("あなたの預金額はただいま%d円です。\n", 1.5);
return 0;
}
プログラムの実行結果
あなたの預金額はただいま0円です。
solarplexuss「
プログラムの実行結果
あなたの預金額はただいま0円です。
この0円というところです。
なぜこんな綺麗な数値0がprintf出力表示されるのか?
どんな秘密がかくされているのか
楽しみがふえました。」
ソーラー 「そうですね
solarplexussさん
どんな仕組みがかくれているのか
どきどきしますね。
いずれ解けるときがくるのが楽しみです(*´▽`*)。。」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます