編集可能

C言語でこちらの問題を解くとどうなりますか?

まとめました。
42
おりがー@ @takakiriba825

どなたかc言語プログラミングが得意な方、いらっしゃいましたら教えていただきたいです。 簡単な問いでお恥ずかしいのですが、画像の問いの答えを教えていただきたいです。 int型どうしの演算で少数の出し方が分からないです。 #c言語 #プログラミング #プログラミング初心者 #プログラミング学習 pic.twitter.com/kLlE8C7eMT

2019-07-09 11:19:05
拡大
ねこめし@ハイブリッドマルチクラウド @necomeshi

某企業の子会社SIerに所属する技術者。 C/C++, Go, Python , Linux、Kubernetes/Docker。最近はAWS/Azure/GCPも。 趣味サバゲーマー

ねこめし@ハイブリッドマルチクラウド @necomeshi

int main() { int a = 10; int b = 5; printf(“a=10とb=5の平均は7.5です”); } twitter.com/takakiriba825/…

2019-07-09 11:55:07
田舎おぢぢ @RyougaIkubo

@necomeshi @NAGAYASU_Shinya 問題に対する答えとしては○だと思う。 日本人的忖度が足りないけど(笑

2019-07-09 13:25:33
ふかごろう @fukagorou

@necomeshi プログラマー:「仕様書通りに作りました。」

2019-07-09 15:51:16
白鷹 @ShiroTaka12

@necomeshi にしてもこんな風に問題を書いたらちょっとこう言った悪ふざけを誘っているようなもんじゃない(笑)

2019-07-09 17:01:45
feijoa.jp @feijoa_hal

@necomeshi あれ? C詳しく無いんですけど、それでprintf()使えますか?

2019-07-09 15:07:44
WorldEndHERO(ひーろー) @Hero_Manah

@feijoa_hal stdio.hをincludeしてたらおっけーですね🙌

2019-07-09 15:15:29
LEGEND(タコは馬鹿) @Takohabaka

@Hero_Manah @feijoa_hal そのへんのincludeは書かなくてもたいていの場合コンパイラが自動補完してくれるからOK

2019-07-09 15:58:50
おりがー@ @takakiriba825

こちらでできました! 今回は『((double)a)/b や ((float)a/b) で、aが小数点型に変換されて計算される』 というやり方を参考にさせていただきました。 皆さまご協力ありがとうございました! #c言語 #プログラミング学習 #プログラミング初心者 #解決 pic.twitter.com/5MYGEVWPTS

2019-07-09 12:02:41
拡大
Mstn @ 図書館に日本語の教科書を @SatoshiMasutani

@takakiriba825 キャストですね。勉強した範囲になかったのでしょうか。ちょっと気になります

2019-07-09 15:15:47
おりがー@ @takakiriba825

@SatoshiMasutani それが、今大学でプログラミングの基礎を勉強している最中なのですが、教材にint型どうしの切り捨てが起こることと、格上げのことは載っているのですが、今回のint型どうしで浮動小数にするやり方が載っていなかったのです。 それで困ってしまい、質問させていただきました。

2019-07-09 18:45:08

コメント

Nemurin @nemurin2010 2019年7月9日
アフィが苦行みたいなタイトルでワロタ
12
キューマン・エノビクト @QmanEnobikto 2019年7月9日
どーせコンパイラが最適化するから結果は同じ(
2
mikumiku_aloha @mikumiku_aloha 2019年7月9日
基本は両方の数字を浮動小数点にキャストではないかと思う。
3
Daregada @daichi14657 2019年7月9日
基本は暗黙の型変換を理解して、それではうまくいかない場合にキャストする、じゃないかね
3
ちょちょまる @sakuya_little 2019年7月9日
単純な問題ほど難しくして遊びたがる
0
いとけい @itokei_ 2019年7月9日
まとめ内のアレは置いといて、小数型禁止にすると問題としておもしろいかも
1
ゆーき @yuki073 2019年7月9日
そこは10倍して固定小数点モドキをですね。
4
SAKURA87@多摩丙丁督 @Sakura87_net 2019年7月9日
int a = 10; int b = 5; int ac = a+b; printf("a=10とb=5の平均は%d%sです。\r\n", (ac>>1) , (ac&1?".5":"") );
2
ミューオン @myuonmyuon 2019年7月9日
こんなクソまとめ作んなよw
6
ふるやx[xは全角です] @Furunya_X 2019年7月9日
itokei_ includeとかはおいといて int a=10,b=5,c=0,d=0,n=10; c=(a+b)/2; d=(a+b)*n/2%n; printf("a=10,b=5の平均は%d.%dです\n",c,d); こんな感じのはいかがでしょう? 精度はnに依存しますが…
0
SSKTK@E7-3中 @SSKTK 2019年7月9日
苦Cは名著だぞ。勉強になる
0
tanasinn @tanasinn88 2019年7月9日
Javaだとこうですか? (一部抜粋) int a = 10; int b = 5; long lAvg = 0; String sAvg = null; lAvg = ((long)(a + b)) / 2; System.out.println("a=10とb=5の平均は" + sAvg + "です。");
0
いぬだわん @InuWang 2019年7月10日
tanasinn88 ネタなのか分からないけど、nullです、って出るんじゃね? それ以外でもlongは整数だしな。
0
tanasinn @tanasinn88 2019年7月10日
InuWang longにしたところはdoubleの間違いでした。すみません。
0
RGB000 @19666_61 2019年7月10日
たいていprintfの次くらいにscanfやると思うが...なんでまたこういう有り難みのないソースコードにしてしまったのか...
0
tanasinn @tanasinn88 2019年7月10日
やりなおし (一部抜粋) int a = 10; int b = 5; double dAvg = 0; String sAvg = null; dAvg = ((double)(a + b)) / 2; sAvg += String.valueOf(dAvg); System.out.println("a=10とb=5の平均は" + sAvg + "です。");
0
Hacchi @2mocccck 2019年7月10日
tanasinn88 a=10とb=5の平均はnull7.5です。
0
電子馬🅴 @Erechorse 2019年7月10日
苦Cはネタみたいな名前だけど中身ちゃんとしてて良くできた本ですよ
1
Daregada @daichi14657 2019年7月10日
まとめ冒頭の回答例はこの問題については非の打ち所がない。出題者がおそらく意図していた回答(intをdoubleにキャストして割り算など)を引き出すには、問題文にもう少し補足が必要
3
きゃっつ(Kats)⊿11/25日向坂ツアー広島 @grayengineer 2019年7月10日
『今回のint型どうしで浮動小数にするやり方が載っていなかったのです』 これつまり「教わった手順どおりはできるけど応用はできない」って言ってるように見える
1
きゃっつ(Kats)⊿11/25日向坂ツアー広島 @grayengineer 2019年7月10日
「変数の型とは?」「異なる型どうしでの相互変換は?」みたいな疑問を持たずに「こういうときはこうしろ」ということだけ覚えてました、っていうような
1
さとうあきひろ @akihirosato1975 2019年7月10日
そもそも「浮動小数点演算をしろ」なんて元の問題には書いてない。なので「小数点以下1桁の固定小数点演算ができればOK」と考えて、aとbをそれぞれ10倍して演算するほうが自然かなぁ。既にコメ欄でも似たような考えのコードがあるけど。
0
エリ・エリ・レマ・サンバディトゥナイ @mtoaki 2019年7月10日
10倍してから計算し、結果を表示する時に小数点を差し込めばいい。汎用性を持たせるなら100倍して計算し、1桁目の繰り上げ切り捨て処理とか答えが100未満なら表示の時'0'を追加するとかの処理もいるけど。
0
asn @asnitk 2019年7月10日
maumin66 何を言っているんですか、簡単な精度の数値計算にしか使えない浮動小数点なんぞ(酷い言い種)よりあなたのほうが大事に決まってるでしょう!あなたが居ないと誰がリストなりループなりのインデックスやるんですか!
0
山吹色のかすてーら @sir_manmos 2019年7月10日
akihirosato1975 昔、お金を扱うシステムで(最大でも一千万円以下)”銭"まで扱う必要があったので内部ではlong(当時32bit)で円を100倍して演算してました。MS-C Ver4時代。
0
佐渡災炎 @sadscient 2019年7月10日
本編の最初の回答が完璧。
4
メラ @vprjct 2019年7月10日
苦C、コメントの冒頭でネタ扱いされてるんですけど本当に良著なのでなにとぞ・・・
1
nekosencho @Neko_Sencho 2019年7月10日
なんで「はじめてのC」がないんだ
0
じ〜げん〜 @jigen357mgnm 2019年7月11日
くるC とか かっこE とかアルファベットを日本語文の一部にくっつける表記は、1980年代に嵐山光三郎という作家が流行らせた。これ豆なw
0
oshow2001 @oshow2001 2019年7月15日
固定小数点でやるなら、二つの数値(n=2)の平均だから、小数点部の精度は1ビットで十分。10倍もいらないな。汎用性を持たせるなら、ビットシフトとfor文で必要なビット数を求めて、その分だけシフトして計算。
0