初めて質問させていただきます。
標準入力から int型の変数 a, b に入力を受け取り,a × b を求めるプログラムを記述せよ.
但し,算術演算子の * を使ってはいけないこととする.
という問題が出されて考えてみて、aをb回足せばいいということはわかるのですが、それ以外まったくわかりません。
これはfor文を使えばいいのでしょうか?
皆さんの知識を貸してください。よろしくお願いします。
C言語の初歩的な質問ですが...
Re: C言語の初歩的な質問ですが...
aをb回足せばいいというのはその通りです.
bが固定されていればa + a + a + ... + aなどと書けますが,bが幾つになるか分かりませんから,仰るとおりfor文を使うか,またはwhile文を使います.
(インラインアセンブラを使って乗算するというテクニックもありますが,レベルが高い技です)
それ以外まったく分からないということは,main関数の定義方法とか,結果の出力方法とか,値の入力方法なども分からないということでしょうか.
bが固定されていればa + a + a + ... + aなどと書けますが,bが幾つになるか分かりませんから,仰るとおりfor文を使うか,またはwhile文を使います.
(インラインアセンブラを使って乗算するというテクニックもありますが,レベルが高い技です)
それ以外まったく分からないということは,main関数の定義方法とか,結果の出力方法とか,値の入力方法なども分からないということでしょうか.
Re: C言語の初歩的な質問ですが...
beatleさん早速の回答ありがとうございます。
main関数の定義方法というのはわからないのですが、結果の出力と値の入力はわかります。
for文で書くならば条件式の中はどのようになるのか、break文は必要なのかなどがわかりません。
説明不足ですいません。よければ引き続き回答お願いします。
main関数の定義方法というのはわからないのですが、結果の出力と値の入力はわかります。
for文で書くならば条件式の中はどのようになるのか、break文は必要なのかなどがわかりません。
説明不足ですいません。よければ引き続き回答お願いします。
Re: C言語の初歩的な質問ですが...
B≠0の時、A*B=A/(1/B)だから乗算の代わりに除算で出来そうな気がします。
それで、評価が上がるか下がるかは先生次第。
それで、評価が上がるか下がるかは先生次第。
Re: C言語の初歩的な質問ですが...
私も一瞬それを考えましたが、誤差が出るのでよくないでしょうね。さかまき さんが書きました:B≠0の時、A*B=A/(1/B)だから乗算の代わりに除算で出来そうな気がします。
それで、評価が上がるか下がるかは先生次第。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: C言語の初歩的な質問ですが...
素直に作って見ました。このまま提出したらヤバイと言うより習っていない機能を使っています。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: C言語の初歩的な質問ですが...
よく考えたら、算術演算子の*を使わなければよいので...
これでOKでしょう。
これでOKでしょう。
最後に編集したユーザー たかぎ on 2012年1月10日(火) 16:26 [ 編集 1 回目 ]